AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem mit For... to... do... und Integer Array
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit For... to... do... und Integer Array

Ein Thema von Benjin · begonnen am 17. Feb 2005 · letzter Beitrag vom 17. Feb 2005
 
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#10

Re: Problem mit For... to... do... und Integer Array

  Alt 17. Feb 2005, 11:32
Darf man wissen, wie du deinen dynamischen Array erstellst?

SetLength(array, wert) ??

Da könnte der Hund vielleicht begraben sein.

Zitat:
procedure SetLength(var S; NewLength: Integer);

Beschreibung

S ist eine String- oder dynamische Array-Variable.

NewLength enthält die neue Anzahl der Zeichen oder Elemente in S.

Bei einem kurzen String ändert SetLength einfach das Längenbyte (das Zeichen an der Position S[0]) auf den angegebenen Wert. In diesem Fall muß mit NewLength ein Wert zwischen 0 und 255 angegeben werden.

Bei einer langen String- oder einer dynamischen Array-Variable weist SetLength dem in S referenzierten String oder Array die angegebene Länge zu. Dabei bleiben die Zeichen im String oder die Elemente im Array erhalten, jedoch ist der Inhalt des neu zugewiesenen Speicherbereichs nicht definiert. Eine Ausnahme stellt das Vergrößern der Länge von dynamischen Arrays dar, in dem die Elemente Typen sind, die initialisiert werden müssen (Strings, Varianten, Variant-Arrays oder Records, die solche Typen enthalten). Wenn S ein dynamisches Typen-Array ist, das initialisiert werden muß, wird der neu zugewiesene Platz auf 0 oder nil gesetzt.

Nach dem Aufruf von SetLength ist sichergestellt, daß S auf einen eindeutigen String oder ein eindeutiges Array zeigt (d.h. dessen Referenzzähler den Wert Eins hat). Ist nicht genug Speicher für die Variable vorhanden, wird eine EOutOfMemory-Exception ausgelöst.
Ist nur ne Idee.

//Edit: Weil

Delphi-Quellcode:
procedure TTestForm.FormCreate(Sender: TObject);
var
  b: array of byte;
  i: integer;
begin
  SetLength(b, 1); //
  i := b[0]; // i ist 0
  i := High(b); // hight -> 0 .. High gibt - 1 wenn SetLength(b, 0)

  for i := 0 to High(b) do begin
    ShowMessage('0');
  end;
end;
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz