Lecture fichier texte avec délimiteurs

Soyez le premier à donner votre avis sur cette source.

Vue 11 140 fois - Téléchargée 1 711 fois

Description

Exemple de lecture d'un fichier texte permettant d'extraire des données séparées par des délimiteurs.
Les délimiteurs peuvent être modifiés dans le source.

Conclusion :


Exemple pour débutant qui pourrait être amélioré.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3
Date d'inscription
lundi 14 janvier 2008
Statut
Membre
Dernière intervention
22 janvier 2009

tres bien
Messages postés
1
Date d'inscription
mardi 16 octobre 2007
Statut
Membre
Dernière intervention
13 mars 2008

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.
Messages postés
3815
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
4 août 2020
35
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;

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.