00 Stimmen

Delphi/Lazarus: Array unabhängig vom Index durchlaufen

Frage von Gast | 28.09.2014 um 11:03

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 zu vereinfachen, dass man bei einem beliebigen Index anfangen kann (und nicht 0)? Also zum Beispiel irgendeine Funktion um den kleinsten Index eines Arrays abzufragen?

AntwortenPositivNegativ
Avatar
2Beste Antwort2 Stimmen

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

Ein "-1", das man ja braucht wenn man length(array) benutzt, ist dann auch nicht mehr notwendig:

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.