22 Voix

Delphi/Lazarus: Parcourir Array indépendant de l’Index

Question de Invité | 18/01/2024 à 15:04

Je voudrais boucle à travers un tableau/array complet dans Delphi/Lazarus indépendamment de son index de début et de son index de fin.

Jusqu'à présent, j'ai toujours utilisé quelque chose comme i:=0 to length(array)-1, mais j'ai aussi des tableaux/arrays qui ne commencent pas à un index de 0.

Alors, existe-t-il une possibilité de simplifier la tâche pour commencer ou démarrer la boucle à un index arbitraire (et non 0 dans chaque cas)? Par exemple une fonction pour récupérer ou déterminer le plus petit index d'un tableau donné?

RépondrePositifNégatif
2Meilleure Réponse2 Voix

Utilisez simplement low(array) et high(array) au lieu de 0 et length(array). Avec low(), vous obtenez le premier index du tableau, avec high(), vous obtenez le dernier.

Le "-1" dont vous avez besoin lorsque vous utilisez length(array) n'est pas nécessaire puisque vous recevez directement le dernier index du tableau.

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
     // correspond à i := 0 to 4
     array_dyn[i] := 1;
  end;

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

end;

Comme vous pouvez le voir dans cet exemple, vous pouvez utiliser low() et high() avec des tableaux statiques et dynamiques.
18/01/2024 à 22:56

RépondrePositif Négatif
Répondre

Sujets Connexes

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.