Chercher ligne dans un texte

Résolu
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 19 avril 2006 à 20:15
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 - 20 avril 2006 à 23:43
Bonjour à tous,

Voilà je suis en train de créer un petit programme qui automatique une tache.

Mais là je bloque sur une petite chose, comment est-ce que je peux ouvrir un fichier se trouvant dans windows, lire son contenu, et enfin la ou je bloque AJOUTER un texte SI le texte n'y figure pas déjà ?

En effet ce fichier windows change souvent d'état, j'aurais donc besoin d'ajouter juste UNE seule ligne de code si ce texte même est introuvable dans le fichier.

Pourriez-vous éclairer ma lanterne s'il vous plaît ?

Merci d'avance

4 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
20 avril 2006 à 14:42
si le fichier est au format texte brut, ouvre le dans une TStringlist

var TSL : TStringList;
FileName,
SearchText : string;
begin
// on créer l'objet TStringList
TSL := TStringList.Create;

// on definit le fichier
FileName := 'c:\repertoire\fichier.ext';

// on definit le texte a chercher
SearchText := 'texte a chercher';

// on ouvre le fichier
TSL.LoadFromFile(FileName);

// on cherche le texte (1ere methode)
if TSL.IndexOf(SearchText) = -1 then
// si ça echoue
// on cherche le texte (2eme methode)
if Pos(SearchText,TSL.Text) = 0 then
// si ça echoue encore c'est que la ligne n'est pas la
// donc on l'ajoute
TSL.Add(SearchText);

// on sauvegarde le fichier
TSL.SaveToFile(FileName);

// on libere l'instance de l'objet TStringList
TSL.Free;
end;
3
Utilisateur anonyme
20 avril 2006 à 21:51
Allez je me lance (lol) : autre technique



procedure TForm1.Button1Click(Sender: TObject);

var

List:TStringList;

i: integer;

begin

List:=TStringList.create; // Tu crée ta stringlist

List.loadfromfile('C:\fichier.txt');// Tu y charges ton fichier texte

if List.Find('test',i)=false then //Tu recherche l'indexe de 'text' si pas trouvé le résultat est false alors faire

List.add('test'); // ajoute 'test'

List.savetofile('C:\fichier.txt'); //enregistre la stringlist dans 'C:\fichier.txt

end;



Voila une autre méthode qui marcher



A+
3
Utilisateur anonyme
20 avril 2006 à 21:53
Oh pardon : ne pas oublié List.free;
0
Also know as Messages postés 259 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 22 novembre 2010 2
20 avril 2006 à 23:43
Merci pour vos réponses !

C'est exactement ce que je cherchais !

@+
0
Rejoignez-nous