![]() |
Text parsen und auswerten
Moin,
ist stehe hier irgendwie vor ner (Gedanken-)Wand und komme nicht weiter. Ich habe einen Text aus dem ich Werte erkennen muss. Nur ist die Frage: WIE? Der Text sieht so aus: Ort: Haus: von: bis: Anzahl Erwachsene: Kinder: Vorname: Nachname: Strasse: Ort: Zusatz: Telefon: Telefax: eMail: Buchungsbestätigung per: Hinter dem jeweiligen Doppelpunkt können 1 oder mehrer Leerzeichen kommen - oder auch gar nichts. Ich brauche die einzelnen Werte, um diese in eine Datenbank zu "schmeissen". Ich denke daran, eine Funktion in dieser Form zu stricken:
Delphi-Quellcode:
und habe dann als Result das, was dort steht. - nur wie :gruebel:
stringvar := auswerten("Ort");
Gruss EL |
Re: Text parsen und auswerten
evtl helfen dir ja Pos und Posex weiter.
|
Re: Text parsen und auswerten
Hai emsländer,
ist das richtig das in der Zeile mit "Anzahl Erwachsene: Kinder:". Ein Doppelpunkt nach Erwachsene steht? EDIT Wenn es ein versehen mit dem Doppelpunkt ist könntest Du auch einfach mit den ![]() Das könnte zum Beispiel so aussehen:
Delphi-Quellcode:
procedure TDemoForm.Button1Click(Sender: TObject);
var sl: TStringList; filename: String; begin filename := 'c:\demo.txt'; sl := TStringList.Create; try sl.LoadFromFile(filename); sl.NameValueSeparator := ':'; ListBox1.Items.Add(Trim(sl.Values['Kinder'])); ListBox1.Items.Add(Trim(sl.Values['eMail'])); finally sl.Free; end; end; |
Re: Text parsen und auswerten
Zitat:
Zitat:
EL |
Re: Text parsen und auswerten
Du kannst ja auch jede Zeile einzeln abarbeiten und nach den Wörtern suchen ... in S steht der Zeileninhalt.
Delphi-Quellcode:
S := Trim(S);
i := Pos(':', S); S2 := AnsiLowwerCase(Copy(S, 1, i)); S := Trim(Copy(S, i + 1, MaxInt); If S2 = 'ort:' Then Ort := S Else If S2 = 'haus:' Then Haus := S ... Else If S2 = 'anzahl erwachsene:' Then Begin i := Pos('kinder:', AnsiLowerCase(S)); Erwachsene := Trim(Copy(S, 19, i - 19)); Kinder := Trim(Copy(S, i + 7, MaxInt)); End Else If S2 = 'vorname:' Then Vorname := S Else If S2 = 'nachname:' Then Haus := S ... |
Re: Text parsen und auswerten
Zitat:
Gruss EL |
Re: Text parsen und auswerten
Ach ja, bei
Code:
mußt'e mal sehn, ob ich die Werte richtig geschätzt hab und wenn bei den Suchwörtern die Groß-/Kleinschreibung immer stimmt, dann kannst'e natürlich auch die ganzen AnsiLowerCase weglassen, mußt dann natürlich in den Abfragen ebenfalls die Groß-/Kleinschreibung beachten (ansonsten halt alles klein)
Erwachsene := Trim(Copy(S, [color=#ff0000]19[/color], i - [color=#ff0000]19[/color]));
Kinder := Trim(Copy(S, i + [color=#ff0000]7[/color], MaxInt)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz