Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Zeilen in eine Liste einlesen bis Zeichen XYZ
qiwi
myCSharp.de - Member



Dabei seit:
Beiträge: 7

Themenstarter:

Zeilen in eine Liste einlesen bis Zeichen XYZ

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
chilic
myCSharp.de - Experte



Dabei seit:
Beiträge: 2.105

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
DNS46
myCSharp.de - Member



Dabei seit:
Beiträge: 19

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von DNS46 am .
private Nachricht | Beiträge des Benutzers
Platoon
myCSharp.de - Member



Dabei seit:
Beiträge: 55
Herkunft: NRW

beantworten | zitieren | melden

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....
private Nachricht | Beiträge des Benutzers