Autor |
Beitrag |
qwertz123
Hält's aus hier
Beiträge: 14
|
Verfasst: Fr 14.12.07 15: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)
Danke Moderiert 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 15: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 15: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 15: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 15: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 15: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 15: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 15: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 16: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 17: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 17: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.
|
|