Probleme de chaines

cs_manu00 Messages postés 93 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 25 octobre 2006 - 2 mars 2003 à 12:11
cs_manu00 Messages postés 93 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 25 octobre 2006 - 3 mars 2003 à 21:16
Bonjour tout le monde.
J'ai 2 petits soucis avec mes chaines.
Tout d'abord, j'aimerai stocker dans une variable 2 lignes d'un fichier texte. (il y a 2 lignes ds mon TXT)
Seulement, quand je fais ca:

assignfile(sig,'C:\Program Files\fichier.txt');
reset(sig);
while not system.Eof(sig) do
begin
readln(sig,lig);
end;
closefile(sig);

Ca écrase la premiere ligne. J'avais bien pensé a mettre un memo.lines.add mais ca n'arrange pas mon probleme ensuite car c'est stocké dans un memo alors que moi au final, je voudrais avoir stringabc = ligne1+ligne2.

Mon second soucis (le plus important), c'est que mon fichier est structuré ainsi:

abcd|12.2|zxyz|olop

Et j'aimerai pouvoir stocker chaque element entre | dans une variable. Me servir des | comme separateur en fait.

Si vous pouviez eclairer ma lanterne.
Merci

3 réponses

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
2 mars 2003 à 18:57
Pour la lecture des deux lignes tu peux faire simplement :

assignfile(sig,'C:\Program Files\fichier.txt');
reset(sig);
ReadLn(sig,Ligne1);
If Not system.Eof(sig)
  Then ReadLn(Sig,Ligne2)
  Else Chaine2:='';
closefile(sig);


A toi de faire ce que tu veux avec Ligne1 et Ligne 2.

Pour la séparation en mots il faut utiliser les fonctions Pos()et Copy() dans une boucle

--- :sleepy) Nono40@fr.st :sleepy) ---
Nouveau ---> Nono40.fr.st
0
cs_manu00 Messages postés 93 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 25 octobre 2006
2 mars 2003 à 19:21
Merci nono.
J'ai cherché un peu aussi de mon coté et j'ai fais ca:

assignfile(sig,'C:\Program Files\eMule\onlinesig.dat');
reset(sig);
while not system.Eof(sig) do
begin
read(sig,lig);
lig2:=lig2+lig;
end;
closefile(sig);

Pour POS et COPY, je vais me renseigner. si qqlun peut me detailler le truc, ca serait sympa (mais je v chercher seul quand meme)
Encore merci

Manu
0
cs_manu00 Messages postés 93 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 25 octobre 2006
3 mars 2003 à 21:16
Vraiment un GRAND merci Amadeus, ca me sauve la vie.
Par contre, j'ai encore un pépin.
Comme mon truc est sur 2 ligne, j'ai un retour a la ligne que j'aimerai remplacer par un '|' mais j'ai beau faire:

lig2:=ansiReplaceStr(lig2,#13#10,'|');

je me retrouve encore avec ce retour a la ligne (sous forme de rectangle noire (dans un memo))
Quelqu'un a une suggestion ??

merci bcp

Manu
0
Rejoignez-nous