Vous trouverez ici différentes possibilités d'initialiser un tableau sous Delphi.NET.
Vous trouverez dans l'aide en ligne d'autres informations sur les tableaux dynamiques en recherchant le mot-clé : Types structurés
< ![CDATA[
program FaqTableau2;
{$APPTYPE CONSOLE}uses
SysUtils,
Classes; //TStringList Const Nbitem=10;
type
MyArray = Array[0..Nbitem] ofInteger;
var
I :Integer;
Tableau :MyArray;
begin // Initialisation par boucle en connaissant la taille // * A privilégier par rapport à l'appel d'un itérateur*
Writeln('Initialisation par boucle en connaissant la taille');
for I:=0 to Nbitem dobegin
Tableau[I]:=I;
Write(I.ToString+':'+Tableau[I].ToString+' , ');
end;
Writeln;Writeln;
// Pour initialiser un tableau à zéro, similaire à Fillchar sous Win32
Writeln('Initialisation à zéro par Initialize');
// * A privilégier par rapport à l'appel de Array.Clear*
Initialize(Tableau);
For I:=0 to Nbitem doWrite(I.ToString+':'+Tableau[I].ToString+' , ');
Writeln;Writeln;
// Initialisation via un itérateur
Writeln('Initialisation à 4 par itérateur');
For I in Tableau dobegin
Tableau[I] := 4;
Write(I.ToString+':'+Tableau[I].ToString+' , ');
end;
Writeln;Writeln;
// Pour initialiser un tableau à 0
Writeln('Initialisation à zéro par Array.Clear');
&Array.Clear(Tableau,0,Length(Tableau));
for I:=0 to Nbitem doWrite(I.ToString+':'+Tableau[I].ToString+' , ');
Writeln;Writeln;
//Initialisation par boucle sans connaitre la taille
Writeln('Initialisation par boucle sans connaitre la taille');
For I := 0 to Pred(Length(Tableau)) dobegin
Tableau[I] := I;
Write(I.ToString+':'+Tableau[I].ToString+' , ');
end;
readln;
end.
L'accés aux membres du type .NET natif se fait en transtypant le nom de variable d'un type tableau en System.Array.
Const Nbitem=10;
type
MyArray = Array[0..Nbitem] ofInteger;
var
I :Integer;
Tableau :MyArray;
begin
I:=System.Array(Tableau).Rank;
Writeln(' I = '.I.ToString);
end;