Lire une ligne d'un fichier

Résolu
tony_73 Messages postés 30 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 23 décembre 2011 - 24 nov. 2006 à 16:16
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 - 25 nov. 2006 à 18:02
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
24 nov. 2006 à 17:20
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" />
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
24 nov. 2006 à 17:31
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" />
3
cs_couf Messages postés 213 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 6 janvier 2011 1
24 nov. 2006 à 16:25
Salut,

 Donne un exemple de cette ligne s'il te plait

couf
0
tony_73 Messages postés 30 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 23 décembre 2011
24 nov. 2006 à 16:27
re

Voila la premiere ligne du fichier texte a recuperer :

     [TEXTE]

voila
0

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

Posez votre question
cs_couf Messages postés 213 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 6 janvier 2011 1
24 nov. 2006 à 16:33
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
0
tony_73 Messages postés 30 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 23 décembre 2011
24 nov. 2006 à 16:40
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
0
cs_couf Messages postés 213 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 6 janvier 2011 1
24 nov. 2006 à 17:27
Salut Cirec,

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

couf
0
tony_73 Messages postés 30 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 23 décembre 2011
24 nov. 2006 à 17:34
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+
0
cs_couf Messages postés 213 Date d'inscription dimanche 5 janvier 2003 Statut Membre Dernière intervention 6 janvier 2011 1
24 nov. 2006 à 17:42
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
25 nov. 2006 à 18:02
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" />
0
Rejoignez-nous