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
Rejoignez-nous