Bonjour pyoo,
Voici un code simple et répondant à ta question. Je pense que les commentaires t'aideront à décomposer les différentes étapes :
const
//Nom du fichier de valeurs à mettre dans la grille
fichier = 'valeurs.txt';
procedure TForm1.FillStringGrid(aGrid: TStringGrid; aFileName: TFileName; aSeparator: char = #9);
var
F: TextFile;
s, s1: string;
CharPos, nbCols, nbRows: integer;
begin
if FileExists(aFileName) then
begin
AssignFile(F, aFileName);
reset(F);
nbRows := 0;
while not Eof(F) do
begin
//lecture d'une ligne
readLn(F, s);
//recherche du caractère séparateur
CharPos : = Pos(aSeparator, s);
//initialisations
nbCols := 0;
inc(nbRows);
//découpage de la ligne tant que séparateur trouvé
while CharPos > 0do
begin
//s1 = caractères situés avant le premier séparateur
s1 := Copy(s, 1, CharPos - 1);
//suppression des caractères situés devant le séparateur
Delete(s, 1, CharPos);
//calcul e la prochaine position
CharPos := Pos(aSeparator, s);
//recalculer nombre de colonnes nécessaires
inc(nbCols);
{On redimensionne le TStringGrid si nécessaire}
if AGrid.ColCount < AGrid.FixedCols + nbCols + 1then
AGrid.ColCount : = AGrid.FixedCols + NbCols + 1;
if AGrid.RowCount < AGrid.FixedRows + NbRows then
AGrid.RowCount := AGrid.FixedRows + NbRows;
AGrid.Cells[NbCols, NbRows] := s1;
end ;
{S'il reste un ou plusieurs caractères après le dernier
caractère séparateur, on l'ajoute au grid}
if s <> EmptyStr then
AGrid.Cells[nbCols + 1, NbRows] : = s;
end;
CloseFile(F);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FillStringGrid(StringGrid1, fichier);
end;
NB : le composant TStringGrid s'adaptera automatiquement en hauteur et en largeur lorsque la procédure lira les données.
May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.