Comment enregistrer les lignes d'un stringgrid dans un fichier avec une extensio

Résolu
Signaler
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007
-
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
-
salut a tous je cherche comment enregistrer ( et aussi ouvrir) les lignes d'un stringgrid dans un fichier avec une extension que je veut creer exprès pour mon programme,merci.

bye.

4 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Voir code source de Nono40 : ENREGISTRER ET RELIRE UN TSTRINGGRID AVEC UN FICHIER .INI

<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Il te suffit de creer un TFileStream, d'inscrite le nombre de lignes
ainsi que le nombre de colonnes et d'écrire dedans. L'extension n'est
pas importante: tu peux mettre ce que tu veux.

Ici, j'utilise un TSaveDialog mais ce n'est pas obligé.

procedure TForm1.BtnSaveClick(Sender: TObject);

var

X, Y, L: Integer;

Fs: TFileStream;

begin

{ Execution de la boite de dialogue.

C'est une TSaveDialog dont la propriété DefaultExt contient l'extension voulue. }

if not SD.Execute then

Exit;



{ Création du'un flux fichier. }

Fs : = TFileStream.Create(SD.FileName,fmCreate);

try

{ Ecriture de la taille du StringGrid (ici, il s'appelle sg). }

Fs.WriteBuffer(sg.ColCount,SizeOf(Integer));

Fs.WriteBuffer(sg.RowCount,SizeOf(Integer));



{ Boucle pour enregistrer toutes les chaines. }

for X := 0 to sg.ColCount -1 do

for Y : = 0 to sg.RowCount -1 do

begin

{ Récupération de la talle de la chaine. }

L := Length(sg.Cells[X,Y]);

{ Ecriture de la taille de la chaine. }

Fs.WriteBuffer(L,SizeOf(Integer));

{ Puis écriture de la chaine elle-même. }

Fs.WriteBuffer(sg.Cells[X,Y][1],L);

end ;



finally

{ Libération du flux. }

Fs.Free;

end; // try.

end;

<hr size ="2" width="100%">Rien de plus simple.

Si ca te convient, je te mettrai la procédure de relecture.



@ ++

Florent



Si tu ne te plantes pas ......
tu ne poussera jamais
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007

salut
en essayant ton code il me met les erreurs suivantes
que faire? merci de ton aide!
++
Messages postés
53
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
22 février 2008

quel tipe de erreurs explication?