22 Stimmen

Delphi/Lazarus: Array unabhängig vom Index durchlaufen

Frage von Gast | Letztes Update am 23.01.2024 | Erstellt am 28.09.2014

Ich würde gerne einen Array in Delphi/Lazarus unabhängig von dessen Index komplett von vorne nach hinten durchlaufen.

Ich habe es bisher immer mit i:=0 to length(array)-1 gemacht, aber ich habe auch einige Arrays, die nicht beim Index 0 beginnen.

Gibt es daher eine Möglichkeit das irgendwie zu vereinfachen, so dass man bei einem beliebigen Index anfangen kann (und nicht zwingend 0)? Also zum Beispiel irgendeine Funktion um den kleinsten Index eines Arrays abzufragen?

AntwortenPositivNegativ
3Beste Antwort3 Stimmen

Benutze einfach low(arrary) und high(array) anstatt 0 und length(array). Mit low() bekommst du immer den ersten Index heraus, mit high() den letzten.

Ein "-1", das man ja benötigt, wenn man length(array) benutzt, ist nicht notwendig, da man den letzten Index des Arrays direkt erhält.

var
  array_dyn: array of integer;
  array_stat: array[2..7] of integer;
begin
  SetLength(array_dyn, 5);

  for i := low(array_dyn) to high(array_dyn) do begin
     // entspricht i := 0 to 4
     array_dyn[i] := 1;
  end;

  for i := low(array_stat) to high(array_stat) do begin
     // entspricht i := 2 to 7
     array_stat[i] := 1;
  end;

end;

Wie du in diesem Beispiel siehst, kannst du low() und high() sowohl bei statischen als auch bei dynamischen Arrays benutzen.
28.09.2014 um 12:20

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.