Laden...

Zeilen in eine Liste einlesen bis Zeichen XYZ

Erstellt von qiwi vor 2 Jahren Letzter Beitrag vor 2 Jahren 327 Views
Q
qiwi Themenstarter:in
7 Beiträge seit 2021
vor 2 Jahren
Zeilen in eine Liste einlesen bis Zeichen XYZ

Guten Tag zusammen,

Ich bin dabei eine Textdatei einzulesen. Bestimmte Zeilen haben eine eindeutige Kennung ZEILEX, ZEILEY ZEILEZ etc. Hier kann ich einfach die Zeile abfragen mit s.StartsWith("").
Nun habe ich aber ein paar Zeilen, die ebenso in "eine" Zeile zusammengefügt werden müssen.

Beispiel:

ZEILE_X BLABLABLA982374892349BÖABAÖ
ZEILE_Y LABERLABERLABERGEDÖHNS786238476
ZEILE_Z SCHWALLSCHWALLLABER23489
293874989BLABLABABLBLABL984759834
DINGENSKIRCHENHEIMER234987234987234

ZEILE_X LABER234z2938472938479238

Hier soll z.B. von Zeile_Z alles bis zum erneuten Auftreten der Zeile_X alles in eine Liste / Array was auch immer geschrieben werden.
Gibt es hierzu eine spezielle Methode in C# oder wie mache ich das?
Ich dachte da an eine While-Schleife die alles in die Liste packt bis die Zeile_X erscheint.
Sowas wie

[PSEUDO]
while(Zeile nicht mit "Zeile_X) anfängt)
{
ListeZeileZ.Add = "Inhalt der Zeile";
}
[/PSEUDO]

Ich hoffe ich hab hier einigermaßen verständlich dargestellt was ich meine.

C
2.121 Beiträge seit 2010
vor 2 Jahren

C# bietet vieles was man grundsätzlich mit Strings machen wollen könnte. Diese Aufgabe ist allerdings "zu speziell" als dass C# dazu eine eingebaute Methode hätte. Aber wie du ja siehst, ist das schnell selbst programmiert.
(Ich hoffe das beantwortet deine Frage - falls nicht, bitte genauer erklären was du wissen möchtest)

D
21 Beiträge seit 2020
vor 2 Jahren

Liest sich nach einer unsauber gepflegten Adressenliste, welche optimiert werden soll. Du kannst die Zeile beim zeilenweisen Lesen zunächst an eine temporäre Variable anhängen (StringBuilder würde sich gut eignen). Wenn die nächste Zeile nun mit einem definierten Keyword beginnt schreibst du die temporäre Variable in deine optimierte Liste und setzt die Variable zurück.
… und nach Beendigung der Schleife halt noch einmal extra den Inhalt der temporären Variable schreiben. Das wär‘s schon.

P
57 Beiträge seit 2017
vor 2 Jahren

Mach's doch so wie du es geschrieben hast - das wäre zwar ein nicht ganz so eleganter Weg - wie meine Vorredner schon geschrieben haben - aber das würde klappen - vorausgesetzt der nächste Marker wäre halt "ZEILE_X"

Wenn du eine eindeutige Kennung hast, dann sollte das für dich auch passen. Aber wenn du Einfluss auf die Textdatei hast, dann gestalte sie so, dass man sie gescheit auslesen kann und nicht über solche Krücken.

.....an unhandled exception is the first way to think about your pattern of programming....
.....nur weil ich nicht weiß was dort passiert, bedeutet es nicht, dass ich nicht weiß, wie man es lösen kann - aber das ist wahrscheinlich....