LECTURE FICHIER TEXTE AVEC DÉLIMITEURS

Utilisateur anonyme - 12 mars 2008 à 14:15
Eltaief Messages postés 3 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 22 janvier 2009 - 5 avril 2008 à 14:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46008-lecture-fichier-texte-avec-delimiteurs

Eltaief Messages postés 3 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 22 janvier 2009
5 avril 2008 à 14:57
tres bien
Commeaux Messages postés 1 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 13 mars 2008
13 mars 2008 à 21:44
Bonjour,

Merci pour le commentaire.
Bien sur, il y a d'autres façons de traiter ce problème. Je voulais juste proposer un source avec une fonction que je n'avais pas trouver sur ce site et qui me paraissait pouvoir aider un débutant comme moi.
J'ai repris la fonction que tu proposes. Pour le moment et en l'utilisant "brut de forge" cela ne fonctionne pas (avec le fichier de test qui est dans le zip).
Je cherche à récupérer des données de différents format (nombre, texte, date) stockées ligne par ligne et délimitées par une tabulation ou un autre caractère pour les traiter par la suite.
Utilisateur anonyme
12 mars 2008 à 14:15
Salut,

regarde ce code ... il fait la même chose mais beaucoup plus rapidement et surtout il est réutilisable.

Mettre un TMemo + un TButton sur la fiche et compléter comme ceci :

Function ExtractTextWords(const Text: string): TStringList;
Function ReplaceChars(Const S : String; const CS : TSysCharSet; Const C : Char): String;
Var PR : PByte;
BS : Set Of Byte Absolute CS;
Begin
Result := S;
PR := PByte(Result);
While PR^ <> $0 do Begin
If (PR^ in BS) Then
Pr^ := Ord(C);
Inc(Pr);
End;
End;
Begin
Result := TStringList.Create;
Result.Sorted := True;
Result.Duplicates := dupIgnore;
Result.DelimitedText := ReplaceChars(Text, [',', ';', '.', ':'], #32);
End;

procedure TForm1.Button1Click(Sender: TObject);
Var aText, l : TStringList;
begin
If OpenDialog1.Execute Then
Begin
aText := TStringList.Create;
Try
aText.LoadFromFile(OpenDialog1.FileName);
Try
l := ExtractTextWords(aText.Text);
Memo1.Lines.Assign(l);
Finally
l.Free;
End;
Finally
aText.Free;
End;
End;
end;
Rejoignez-nous