Hallo,
hier im Forum wurde zwar schon öfters darüber diskutiert wie man Text aus einem File ausliest oder reinschreibt, aber ich habe nicht zu folgendem Problem gefunden:
Ich will aus einem Textfile bestimmte Zeilen auslesen.
Wie man das macht weiß ich.
Aber jetzt würde ich noch gerne von diesen bestimmten Zeilen nicht alles auslesen.
Z.B. steht im Textfile:
Name-Andi
Alter-22
Ich will nur Andi und die 22 auslesen.
Wie gehe ich da vor ?
Bis jetzt bekomme ich es nur so weit hin, das er mir die kompletten Zeilen ausliest.
Danke im Vorraus.
Gruß
Andi
Hallo Andi123,
vermutlich willst du den Teil nach dem Bindestrich. Das geht mit String.IndexOf und String.Substring oder mit Regex.
herbivore
Servus!
Also, mit RegEx läßt sich das schon lösen . . .sieht etwa so aus:
using System.Text.RegularExpressions;
Regex MyRegex = new Regex("[-][0-9a-zA-Z]*");
string WasDaRausKommt = MyRegex.Match(UrsprungsZeile);
WasDaRausKommt = WasDaRausKommt.Remove("-");
Die RegEx heißt, es muss ein "-" kommen & dannach ein Zeichen von 0-9, a-z, A-Z. Das * steht für beliebige Anzahl.
Du kannst anstelle von [0-9a-zA-Z] auch ein \w nehmen . . . das steht für eben den Audruck + Satz- & Sonderzeichen . . . ein "." würde für jedes beliebeige Zeichen stehen . . .
*Machts gut und danke für den vielen Fisch*
Hi,
danke für die Antworten.
Wie macht man es aber, wenn man in der bestimmten Zeile ab dem Buchstaben 5 einlesen will bis ende der Zeile.
Also z.B.
Hallo Andi 22
Ich will Andi 22 einlesen.
Gibt es da auch eine Möglichkeit?
Danke & Gruß
Andi
Hallo Andi123,
wir haben ja schon aufgezeigt, wie du an den gewünschten Teil kommst. Vorher musst du natürlich die Zeile als ganzes einlesen.
herbivore
Ich lese folgende Zeile ganz ein:
NAME=P0706_diplomfeier
und habe sie dann als string vorliegen.
Mein string heißt a1
Danach will ich NAME= etfernen, so das ich nur noch P0706_diplomfeier im string stehen habe.
So funktioniert es nicht:
Regex MyRegex = new Regex("[=][.]*");
string WasDaRausKommt = MyRegex.Match(a1);
WasDaRausKommt = WasDaRausKommt.Remove("Name");
Was mache ich falsch ?
Fehlermeldung:
Fehler 1 Eine implizite Konvertierung vom Typ "System.Text.RegularExpressions.Match" in "string" ist nicht möglich.
Gruß & Danke
Andi
Sorry, mein Fehler . . . muss:
string WasDaRausKommt = MyRegex.Match(a1).ToString();
heißen! 😉
Übrigens, wenn DU weißt, das da NAME= raus soll . ..dann mach doch direkt .Remove("NAME=") . . .
*Machts gut und danke für den vielen Fisch*
Hallo Andi123,
wenn du es mit Regex machen willst, musst du dir wohl noch etwas die Syntax für reguläre Ausdrücke angucken. In diesem einfachen Fall kannst du es aber auch mit String.IndexOf und String.Substring machen.
Das ganze ist wirklich nicht schwer. Du solltest dich da selber durchbeissen.
herbivore
Ja ok danke.
Werde mich weiter mit befassen.
Wenn trotzdem jemand noch einen Tipp für mich hat, kann er ihn ja noch schreiben.
DANKE
Gruß
Andi