Lire/enregistrer le contenu d'un Stringgrid

// Enregistrer un TStringGrid vers un fichier
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f : TextFile;
i, k : Integer;
begin
AssignFile(f, FileName);
Rewrite(f);
with StringGrid do
begin
// Write number of Columns/Rows
Writeln(f, ColCount);
Writeln(f, RowCount);
// loop through cells
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
Writeln(F, Cells[i,k]);
end;
CloseFile(F);
end;

// Charger un TStringGrid à partir d'un fichier
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
f : TextFile;
iTmp, i, k : Integer;
strTemp : string;
begin
AssignFile(f, FileName);
Reset(f);
with StringGrid do
begin
// Get number of columns
Readln(f, iTmp);
ColCount := iTmp;
// Get number of rows
Readln(f, iTmp);
RowCount := iTmp;
// loop through cells & fill in values
for i := 0 to ColCount - 1 do
for k := 0 to RowCount - 1 do
begin
Readln(f, strTemp);
Cells[i,k] := strTemp;
end;
end;
CloseFile(f);
end;


///Exemple
procedure TForm1.Button1Click(Sender: TObject);
begin
SaveStringGrid(StringGrid1,'c: emp.txt');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
LoadStringGrid(StringGrid1,'c: emp.txt');
end;
Commentaire des internautes
avatar
troops28 le 11/06/2002
C un truc qui va plaire ca ;) enfin j'espere
En ajoutant :
if ColWidths[i] < Canvas.TextWidth(strTemp) then ColWidths[i] := Canvas.TextWidth(strTemp)+10;

Dans la procedure LoadStringGrid apres Cells[i,k] := strTemp; vous redimensionnerez les
colonnes en fonction de la taille des chaines contenu dans les cellules :))))
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour11/06/2002
VisualisationVu 3075 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Autre categorie
Auteur de l'article
SwissDelphiCenter SwissDelphiCenter
connecté le 02/11/2011
329 articles dans la section
Contacter l'auteur