Laden...

Bestimmte Zeichenlänge aus Textdatei auslesen

Erstellt von Andi123 vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.607 Views
A
Andi123 Themenstarter:in
26 Beiträge seit 2006
vor 17 Jahren
Bestimmte Zeichenlänge aus Textdatei auslesen

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

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Andi123,

vermutlich willst du den Teil nach dem Bindestrich. Das geht mit String.IndexOf und String.Substring oder mit Regex.

herbivore

D
209 Beiträge seit 2006
vor 17 Jahren

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*

A
Andi123 Themenstarter:in
26 Beiträge seit 2006
vor 17 Jahren

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

49.485 Beiträge seit 2005
vor 17 Jahren

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

A
Andi123 Themenstarter:in
26 Beiträge seit 2006
vor 17 Jahren

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

D
209 Beiträge seit 2006
vor 17 Jahren

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*

49.485 Beiträge seit 2005
vor 17 Jahren

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

A
Andi123 Themenstarter:in
26 Beiträge seit 2006
vor 17 Jahren

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