String Linienweise lesen...
From: Mirco Kaffsach (_at_web.de)
Date: 12/03/04
- Next message: TimBlume: "Datum auf Basis von Arbeitstagen zurückrechnen"
- Previous message: Marc Eggenberger: "Re: BDT Import in C#-Prog"
- Next in thread: Arne Janning: "Re: String Linienweise lesen..."
- Reply: Arne Janning: "Re: String Linienweise lesen..."
- Messages sorted by: [ date ] [ thread ]
Date: Fri, 3 Dec 2004 16:42:40 +0100
Hi @all,
ich habe ein kleines Problem.
Ich habe einen String, der mitunter bis zu ca. 1.000 Zeilen mit Text
enhalten kann. Dieser String hat am Anfang einer Zeile immer eine "ID" und
dahinter steht dann eine Information. Wenn die Information eine gewisse
anzahl von Zeichen überschreitet, wird sie in der nächste Zeile ohne "ID"
weitergeführt. Als erstes Zeichen in der Zeile steht dann entweder ein Blank
oder ein Tabulator.
Aufbau:
neueID:[blank]Information\r\n
neueID:[blank]Information\r\n
[tabulator oder blank]weitere Information zur gleichen ID wie zeile
zuvor\r\n
[tabulator oder blank]weitere Information zur gleichen ID wie zeile
zuvor\r\n
neueID:[blank]Information\r\n
neueID:[blank]Information\r\n
Beispiel:
...
Ort: Wuppertal
Plz: 42111
Kommentar: Blablabla
blablabla
Geburtstag: 21.05.1978
...
Wenn ich jetzt eine funktion schreiben möchte die diese Infos alle in die
Eigenschaften meiner Klasse einträgt, wird das in meinen Augen etwas
unkonventionell, so wie ich es momentan mache.
Momentan mache ich das mit einem StreamReader und ReadLine. Dort gehe ich
dann jede einzelne Zeile durch und ordne sie anhand der "IDs" den
Eigenschaften zu. Ich finde dieses allerdings ein wenig performance lastig.
Gibt es nicht eine möglichkeit sowas änliches wie IndexOf zu benutzen, der
dann direkt die ganze Zeile liest, also bis zum "\r\n"???
Hier mal ein wenig PseudoCode wie ich das meine.
string test = "Ort: Wuppertal\r\n
Plz: 42111\r\n
Kommentar: Blablabla\r\n
\tblablabla\r\n
Geburtstag: 21.05.1978\r\n";
if ( test.IndexOf( "Plz:" ) > -1 )
dann lese diese komplette Zeile an der sich Plz: befindet.
if ( test.IndexOf( "Kommentar:" ) > -1 )
{
dann lese diese komplette Zeile an der sich Kommentar: befindet.
lese solange die nächsten Zeilen bis nicht mehr " " oder "\t" als erstes
Zeichen vorhanden ist.
}
Ich hoffe ihr versteht mich und könnt mir ein wenig weiterhelfen. Meine
Version klappt zwar momentan, aber angesichts der bis zu 1000 Zeilen, würde
ich mich fragen ob es da nicht auch noch elegantere Arbeitsweisen gibt.
Gruß und Danke Mirco
- Next message: TimBlume: "Datum auf Basis von Arbeitstagen zurückrechnen"
- Previous message: Marc Eggenberger: "Re: BDT Import in C#-Prog"
- Next in thread: Arne Janning: "Re: String Linienweise lesen..."
- Reply: Arne Janning: "Re: String Linienweise lesen..."
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|