FAQ Delphi .NET

FAQ Delphi .NETConsultez toutes les FAQ
Nombre d'auteurs : 15, nombre de questions : 54, dernière mise à jour : 16 juin 2021
Sommaire→Tableau
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
program FaqTableau2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Classes; //TStringList
Const Nbitem=10;
type
MyArray = Array[0..Nbitem] of Integer; // tableau statique
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 do
begin
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 do
Write(I.ToString+':'+Tableau[I].ToString+' , ');
Writeln;Writeln;
// Initialisation via un itérateur
Writeln('Initialisation à 4 par itérateur');
For I in Tableau do
begin
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 do
Write(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)) do
begin
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] of Integer;
var
I :Integer;
Tableau :MyArray;
begin
I:=System.Array(Tableau).Rank;
Writeln(' I = '.I.ToString);
end;


