NOTES :
Pour enregistrer le contenu il faut appeler la procédure EcritureGrille avec les paramètres :
Grille : composant de type TStringGrid à sauvegarder
NomFichier : nom du fichier .INI
CasesVides : Indique si les cellules vides sont enregistrées dans le fichier .INI. A False les cellules
vides ne sont pas enregistrées, ceci réduit la taille du fichier .INI si la grille contient beaucoup de cellules vides.
Par défaut CasesVides est à True.
Pour lire le contenu il faut appeler la procédure LectureGrille avec les paramètres :
Grille : composant de type TStringGrid à sauvegarder
NomFichier : nom du fichier .INI
CODE :
// Procédure d'écriture d'une grille dans un fichier .INI // Grille : composant de type TStringGrid dont le contenu doit être écrit // NomFichier : nom du fichier .INI de sauvegarde // CasesVides : indique si les cellules vides sont enregsitrées Procedure EcritureGrille(Grille:TStringGrid;NomFichier:String;CasesVides:Boolean=True); Var Ini:TIniFile;
i,j:Integer; Begin
Ini:=TIniFile.Create(NomFichier); With Grille DoTry // Enregistrement de la taille de la grille
Ini.WriteInteger('GENERAL','COLCOUNT',ColCount);
Ini.WriteInteger('GENERAL','ROWCOUNT',RowCount); // Enregistrement des cellules de la grille For i:=0 To ColCount-1 DoFor j:=0 To RowCount-1 Do If CasesVides Or (Cells[i,j]<>'') Then Ini.WriteString(IntToStr(i),IntToStr(j),Cells[i,j]); Finally
Ini.Free; End; End;
// Procédure de lecture d'une grille dans un fichier .INI // Grille : composant de type TStringGrid dont le contenu doit être lu // NomFichier : nom du fichier .INI à lire Procedure LectureGrille(Grille:TStringGrid;NomFichier:String); Var Ini:TIniFile;
i,j:Integer; Begin
Ini:=TIniFile.Create(NomFichier); With Grille DoTry // Test si la taille de la grille est incluse If Ini.ValueExists('GENERAL','COLCOUNT') And Ini.ValueExists('GENERAL','ROWCOUNT') ThenBegin // Adaptation de la grille à la taille enregistrée dans le fichier
ColCount:=Ini.ReadInteger('GENERAL','COLCOUNT',ColCount);
RowCount:=Ini.ReadInteger('GENERAL','ROWCOUNT',RowCount); // Lecture du contenu de la grille dans le fichier .NINI For i:=0 To ColCount-1 DoFor j:=0 To RowCount-1 Do
Cells[i,j]:=Ini.ReadString(IntToStr(i),IntToStr(j),''); End; Finally
Ini.Free; End; End;