Fichier texte en delphi 7

cloudlouda
Messages postés
13
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
8 juin 2010
- 3 avril 2010 à 23:33
cs_Jean_Jean
Messages postés
615
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
- 12 janv. 2011 à 07:48
salut
comment faire pour que ce code n'enregistre pas une donnee deja ecrite sur le fichier.merci

procedure TForm1.Button2Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
Stg:=c.items.text;//c tcombbox
AssignFile(F,'C:\info\test.txt');
if fileexists('C:\info\test.txt') then append(F)
else rewrite(F);
Writeln(F,Stg);
closefile(F);
end;

10 réponses

cloudlouda
Messages postés
13
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
8 juin 2010

4 avril 2010 à 13:26
salut
j'attend vos reponses,s'il vous plait.
0
fbalien
Messages postés
251
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
11 novembre 2016

4 avril 2010 à 17:32
Bonjour

tient un impatient
si le but est de ne pas ajouter un texte existant
alors comme vous la conseillé Bacterius
c'est de passer par TStringList
Donc une petite recherche dans l'aide de Delphi avec comme critère TStringList
devrait répondre à votre question

A+
0
cloudlouda
Messages postés
13
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
8 juin 2010

4 avril 2010 à 17:52
Bonjour
merci fbalien,mais j'ai pas compri comment passer avec le TStringList.
0
cs_Jean_Jean
Messages postés
615
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
3
4 avril 2010 à 18:13
Tu peux utiliser la fonction IndexOfName du Stringlist qui te renverra un indice s'il existe déjà! Il y a aussi simes souvenirs sont bons, ValueFromIndex...
Jean_Jean
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cloudlouda
Messages postés
13
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
8 juin 2010

4 avril 2010 à 18:57
salut
je veut modifier au niveau ce code qui fait l'enregistrement sur un fichier texte.Pour ne pas ajouté une donnée existante.merci

procedure TForm1.Button2Click(Sender: TObject);
Var F: TextFile;
Stg:String;
begin
Stg:=c.items.text;//c tcombbox
AssignFile(F,'C:\info\test.txt');
if fileexists('C:\info\test.txt') then append(F)
else rewrite(F);
Writeln(F,Stg);
closefile(F);
end;
0
ThWilliam
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
4
4 avril 2010 à 19:47
Bonjour.

Pourquoi t'obstiner avec un TextFile, alors que c'est si simple avec un StringList ?

Voici la procedure d'enregistrement du ComboBox en évitant les doublons :

procedure TForm1.Button2Click(Sender: TObject);
var
StringList: TStringList;
FileName, S: string;
I: integer;
begin
FileName:= 'C:\info\test.txt';
StringList:= TStringList.Create;
StringList.CaseSensitive:= false; // pas de différence majuscule-minuscule
try
if FileExists(FileName) then
StringList.LoadFromFile(FileName);
for I:= 0 to ComboBox1.Items.Count - 1 do
begin
S:= ComboBox1.Items[I];
if StringList.IndexOf(S) < 0 then // l'item n'existe pas
StringList.Add(S);
end;
StringList.SaveToFile(FileName);
finally
StringList.Free;
end;
end;


A +
Thierry
0
ThWilliam
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
4
4 avril 2010 à 19:50
Désolé, je mets cela en forme :

procedure TForm1.Button2Click(Sender: TObject);
var
   StringList: TStringList;
   FileName, S: string;
   I: integer;
begin
   FileName:= 'C:\info\test.txt';
   StringList:= TStringList.Create;
   StringList.CaseSensitive:= false; // pas de différence majuscule-minuscule
   try
      if FileExists(FileName) then
        StringList.LoadFromFile(FileName);
      for I:= 0 to ComboBox1.Items.Count - 1 do
      begin
         S:= ComboBox1.Items[I];
         if StringList.IndexOf(S) < 0 then // l'item n'existe pas
              StringList.Add(S);
      end;
      StringList.SaveToFile(FileName);
   finally
      StringList.Free;
   end;
end;
0
cs_Jean_Jean
Messages postés
615
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
3
4 avril 2010 à 20:20
Bonjour ThWilliam
Tu as une meilleure mémoire que moi!
Pourtant, je les utilise ces stringlist!
@ cloudlouda : très pratique! Tape F1 sur ton StringList, tu accéderas à toutes les propriétés avec des exemples parfois!
Bonne prog!
Jean_Jean
0
cloudlouda
Messages postés
13
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
8 juin 2010

4 avril 2010 à 22:56
merci
0
cs_Jean_Jean
Messages postés
615
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
3
12 janv. 2011 à 07:48
Hello

It is a forum in French here. Use a translator stp!
Good programming in Delphi!

Jean_Jean
0