Enregistrer et relire un tstringgrid avec un fichier .ini

Contenu du snippet

C'est suite à une question du forum.

Voici deux procédures qui permettent d'enregistrer un TStringGrid dans un fichier .INI. La taille de la grille est aussi enregistrée. Ce qui permet d'adapter la taille de la grille à la relecture du fichier.

Pour enregistrer une grille : SauveGrille('C:\TEMP\ESSAI.INI',StringGrid1);
Pour relire une grille : LectureGrille('C:\TEMP\ESSAI.INI',StringGrid1);

Il est aussi possible d'enregistrer automatiquement une grille dans le OnDestroy d'une fiche et de la relire dans le OnCreate à l'aide de ces procédures.

Source / Exemple :


Procedure SauveGrille(NomFichier:String;Grille:TStringGrid);
Var Ini:TIniFile;
    i,j:Integer;
begin
  Ini:=TIniFile.Create(NomFichier);
  With Grille Do Try
    Ini.WriteInteger('GENERAL','RowCount',RowCount);
    Ini.WriteInteger('GENERAL','ColCount',ColCount);
    For i:=0 To ColCount-1 Do For j:=0 To RowCount-1 Do
      Ini.WriteString(IntToStr(i),IntToStr(j),Cells[i,j]);
  Finally
    Ini.Free;
  End;
End;

Procedure LectureGrille(NomFichier:String;Grille:TStringGrid);
Var Ini:TIniFile;
    i,j:Integer;
begin
  Ini:=TIniFile.Create(NomFichier);
  With Grille Do Try
    If INI.ValueExists('GENERAL','RowCount')And
       INI.ValueExists('GENERAL','ColCount')
    Then Begin
      RowCount:=Ini.ReadInteger('GENERAL','RowCount',RowCount);
      ColCount:=Ini.ReadInteger('GENERAL','ColCount',ColCount);
      For i:=0 To ColCount-1 Do For j:=0 To RowCount-1 Do
        Cells[i,j]:=Ini.ReadString(IntToStr(i),IntToStr(j),'');
    End;
  Finally
    Ini.Free;
  End;
End;

Conclusion :


Cette source et quelques autres sur : http://nono40.developpez.com

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.