| Autor | Beitrag | 
| qwertz123 Hält's aus hier
 Beiträge: 14
 
 
 
 
 | 
Verfasst: Fr 14.12.07 14:03 
 
Hallo,
 habe eine Frage:
 Gegeben ist eine Textdatei in folgendem Format (als Beispiel):
 Autoname: Mercedes Benz
 Typ: C Klasse
 BinärKürzel: 0110110010
 Eingelesen werden soll nicht immer die ganze Zeile (ReadAllLines...), sondern nur Mercedes Benz, C Klasse, und 0110110010 (einmal komplett und einmal dass evtl jede 0 bzw 1 in ein Array oder so geschrieben wird)
 DankeModeriert von  Christian S.: Topic aus C# - Die Sprache verschoben am Fr 14.12.2007 um 14:09 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Fr 14.12.07 14:11 
 
Hallo und   !
 Mit einem StreamReader kannst Du die Zeilen einzeln einlesen:
 		                       C#-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 
 | using (StreamReader sr = new StreamReader(@"e:\meineDatei.txt"){
 while (!sr.EndOfFile)
 {
 string eineZeile = sr.ReadLine();
 }
 }
 |  (ausm Kopf geschrieben, kann also noch Fehler enthalten)
 Grüße
 Christian_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| Kha 
          Beiträge: 3803
 Erhaltene Danke: 176
 
 Arch Linux
 Python, C, C++ (vim)
 
 | 
Verfasst: Fr 14.12.07 14:15 
 
Das geht noch kürzer mit File.ReadAllLines    .
 Aber die Aufgabe wär ein idealer Fall für Regular Expressions. Kein leichtes Thema, doch das Einarbeiten lohnt sich auf jeden Fall. Ein Tutorial lässt sich z.B. hier  finden, danach ist der nächste Anlaufpunkt die Regex-Klasse im SDK. | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Fr 14.12.07 14:23 
 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| qwertz123  Hält's aus hier
 Beiträge: 14
 
 
 
 
 | 
Verfasst: Fr 14.12.07 14:32 
 
Danke erstmal für die Antworten.
Um es nochmal zu verdeutlichen: Es soll nicht eingelesen werden: Name, Typ, Binärkürzel sondern die "Werte" dahinter
 | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Fr 14.12.07 14:34 
 
Das wird nicht klappen. Du musst die Daten davor lesen, weil Du sonst nicht weißt, wann die Werte anfangen. _________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| qwertz123  Hält's aus hier
 Beiträge: 14
 
 
 
 
 | 
Verfasst: Fr 14.12.07 14:36 
 
wie lese ich die werte eine Zeile einzeln ein? | 
|  | 
| Christian S. 
          Beiträge: 20451
 Erhaltene Danke: 2264
 
 Win 10
 C# (VS 2019)
 
 | 
Verfasst: Fr 14.12.07 14:40 
 
Lies die Zeile ein und kopiere die entsprechenden Stellen heraus:
 		                       C#-Quelltext 
 									| 1:
 | string autoName = eineZeile.SubString(9); 					 |  Oder per RegEx, ein Tutorial dazu hat Khabarakh verlinkt._________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
 | 
|  | 
| qwertz123  Hält's aus hier
 Beiträge: 14
 
 
 
 
 | 
Verfasst: So 16.12.07 15:27 
 
	  |  Christian S. hat folgendes geschrieben: |  	  | Lies die Zeile ein und kopiere die entsprechenden Stellen heraus: 
 		                       C#-Quelltext 
 									| 1:
 | string autoName = eineZeile.SubString(9); 					 |  
 | 
 Danke, hat mir weitergeholfen.
 Leider funktioniert aber Substring nicht bei Arrays. Hab mir gedacht mit dem Befehl "ReadAllLines" die Zeilen in ein Array zu schreiben und Substring auf jede Zeile dann anwenden. Geht aber nicht.
 Gibt es noch einen anderen Befehl der evtl so etwas kann? | 
|  | 
| JüTho 
          Beiträge: 2021
 Erhaltene Danke: 6
 
 Win XP Prof
 C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
 
 | 
Verfasst: So 16.12.07 16:05 
 
	  |  qwertz123 hat folgendes geschrieben: |  	  | Leider funktioniert aber Substring nicht bei Arrays. Hab mir gedacht mit dem Befehl "ReadAllLines" die Zeilen in ein Array zu schreiben und Substring auf jede Zeile dann anwenden. Geht aber nicht. | 
 Natürlich geht das: Jedes Element des Array ist doch ein string, also funktioniert auch Substring. Beispiel:
 		                       C#-Quelltext 
 									| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 
 | string currentItem;foreach(string s in myArray) {
 currentItem = s.Substring(9);
 }
 for(int x1 = 0; x1 < myArray.Length; x1++) {
 currentItem = myArray[x1].Substring(9);
 }
 |  Natürlich ist Array.Substring() Quatsch, aber String.Substring() ist bei jedem  String möglich. Du musst doch sowieso bei jedem Element genau darauf achten, um welchen Typ es sich handelt...
 Jürgen | 
|  | 
| qwertz123  Hält's aus hier
 Beiträge: 14
 
 
 
 
 | 
Verfasst: So 16.12.07 16:30 
 
	  | Zitat: |  	  | Natürlich ist Array.Substring() Quatsch, aber String.Substring() ist bei jedem String möglich. Du musst doch sowieso bei jedem Element genau darauf achten, um welchen Typ es sich handelt...
 
 Jürgen
 | 
 Hey danke. So hatte ich das irgendwie auch, kam nur immer Fehler. War wohl eine Kleinigkeit. Vielen Dank dafür. | 
|  |