Lire une ligne d'un fichier

Résolu
Signaler
Messages postés
30
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
23 décembre 2011
-
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
-
Bonjour,

Voila j'aimerais ouvrir un fichier et lire juste la premiere ligne délimité par des crochets. mais apparemment il est impossible en faisant un ReadLn(Fichier)!

Pouvez me guider svp?

Merci

10 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,
essaye avec un TStringList :

procedure TForm1.Button1Click(Sender: TObject);
Var TS : TStringList;
  Texte : String;
Begin
  TS := TStringList.Create;
  Try
    TS.LoadFromFile('Nom_du_Fichier');
    Texte : = TS[0];  // on affecte la première ligne à Texte
  Finally
    TS.Free;
  End;
  Label1.Caption : = Texte;  // on l'affiche dans un Label
End ;

 
@+
Cirec

<hr size ="2" />
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Bon faut pas pousser quand même ...
s'il a besoin que du texte entre les crochets rien de plus simple :

    Texte := Copy(TS[0], 2, Length(TS[0]) - 2);

 
@+
Cirec

<hr size="2" />
Messages postés
213
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
6 janvier 2011
1
Salut,

 Donne un exemple de cette ligne s'il te plait

couf
Messages postés
30
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
23 décembre 2011

re

Voila la premiere ligne du fichier texte a recuperer :

     [TEXTE]

voila
Messages postés
213
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
6 janvier 2011
1
C'est à dire tu me dis si je me trompe,

Ton ficier est comme ceci,

[1ère ligne]
[2ème ligne]
.
.
.
.
[nième ligne]
C'est cela?

couf
Messages postés
30
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
23 décembre 2011

re

Oui c'est cela. Toutes les ligne sont entre crochets et moi je me preoccupe que de la premiere.

C'est surtout que ReadLn est tres mal expliqué et que sa marche po !!

Je pense qu'il faut utiliser autre chose maios ye sait pas quoi!!

Merci
Messages postés
213
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
6 janvier 2011
1
Salut Cirec,

  Je crois qu'il veut juste le texte sans les crochets
non?
 

couf
Messages postés
30
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
23 décembre 2011

Ok c'est bon je suis arrivé a ce que je veut.

Au fait pour les crochets sa va etre bon. Je vais les enlever moi meme.

Merci a tous les deux. 

bonne prog

A+
Messages postés
213
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
6 janvier 2011
1
Merci  Cirec,

car je ne connaissais pas cette propriété
j'étais entrain d'écrire une vrai "usine à gaz" pour virer  tous les crochets, et ensuite faire un Tsringlist comme toi
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
De rien ...
on a souvent tendance à chercher la complication alors que la solution est très simple

il existe aussi la fonction StringReplace de l'unité SysUtils.pas
Extrait de l'unité SysUtils.pas:
type
  TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);

function StringReplace(const S, OldPattern, NewPattern: string;
  Flags: TReplaceFlags): string;

Utilisation:
procedure TForm1.Button1Click(Sender: TObject);
Var TS : TStringList;
Begin
  TS : = TStringList.Create;
  Try
    TS.LoadFromFile('Config.ini');
// suppression en une passe de tous les [
    TS.CommaText : = StringReplace(TS.CommaText,'[', '', [rfReplaceAll]);
// suppression en une passe de tous les ]
    TS.CommaText := StringReplace(TS.CommaText,']', '', [rfReplaceAll]);
// et on les affiches en une fois le résultat dans un TMemo
    Memo1.Lines.AddStrings(TS);
  Finally
    TS.Free;
  End;
End;

 
@+
Cirec

<hr size ="2" />