Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Existiert Eintrag in dynamischem Array?
Calculon - Do 11.09.08 13:51
Titel: Existiert Eintrag in dynamischem Array?
Hi zusammen,
wie kann ich festellen, ob ein gültiger
array Eintrag existiert? Also in anderen Worten: Wurde für diesen Index bereits Speicher angefordert?
Wenn ich
Delphi-Quelltext
1: 2:
| if data[i] = nil then ShowMessage('NIL'); |
ausführe, dann kommt immer eine Zugriffsverletzung bevor auf nil geprüft werden kann...
Gruß
--
Gausi - Do 11.09.08 13:53
length(myArray) < i ?
Calculon - Do 11.09.08 14:02
Thx! :idea:
Gruß
--
Marc. - Do 11.09.08 14:48
Muss es nicht korrekterweise high(myArray) < i heißen? :gruebel:
elundril - Do 11.09.08 14:49
ich glaube es geht beides.
wazup - Do 11.09.08 14:53
So weit ich das weis ist das so:
(High(MyArray)) = (Length(MyArray) - 1) Bessere erklärung fiel mir jetzt nicht ein *LOL*
baka0815 - Do 11.09.08 14:56
Nicht ganz richtig.
Man kann ein Array von [5..20] definieren, dann wäre High()=20, Low()=5, aber Length()=16.
Xentar - Do 11.09.08 15:00
Delphi-Quelltext
1: 2: 3: 4:
| if i in [low(MyArray)..high(MyArray)] then begin
end; |
Geht nur, wenn das Array weniger als 255 Werte hat.
Sonst:
Delphi-Quelltext
1:
| if (i >= low(MyArray)) and (i <= high(MyArray)) then |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!