Utilisateur anonyme
-
12 mars 2008 à 14:15
Eltaief
Messages postés3Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention22 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.
Eltaief
Messages postés3Date d'inscriptionlundi 14 janvier 2008StatutMembreDernière intervention22 janvier 2009 5 avril 2008 à 14:57
tres bien
Commeaux
Messages postés1Date d'inscriptionmardi 16 octobre 2007StatutMembreDernière intervention13 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.
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;
5 avril 2008 à 14:57
13 mars 2008 à 21:44
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.
12 mars 2008 à 14:15
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;