Benutzer mit den meisten Antworten
Einzelne Zeilen von textdateien auslesen und speichern

Frage
-
Hallo,
ich bin momentan dabei, ein Programm zum Auslesen mehrerer Daten zu schreiben. Kann jetzt alle gewünschten dateien Ausgeben in einer Listbox anzeigen und auch aus dieser öffnen.
Nun möchte ich, per Button klick, bestimmte Zeilen von diesen Dateien auslesen. Es sind 9 Stück genau.
Habe es folgendermaßen versucht:
var zeilen = File.ReadLines("V:\\...\\);
var zweiteZeile = zeilen.Skip(1).First();
MessageBox.Show(zweiteZeile);
string [] zeile = reader.ReadLine().Split(';');
string bsp1 = zeile [4];
string bsp2 zeile[5];
string bsp3 = zeile[6];
string bsp4 = zeile[7];
string bsp5 = zeile[8];
string bsp 6 = zeile[9];
string bsp 7 = zeile[10];
string bsp 8 = zeile[11];
string bsp 9 = zeile[12];1. Funktioniert dies leider gar nicht (dachte man gibt in den Klammern die Zeilenzahl an... hatte ich irgendwo anders gelesen)
2. Würde ich in der Datei gerne immer nur das, was nach dem Doppelpunkt steht öffnen.
Also in der Datei steht beispielsweise ("bsp1 : 6,564589")
Da würde ich gerne nur die 6,564589 speichern. Sieht da jmd die Möglichkeit?
mit freundlichen Grüßen
Antworten
-
Hallo,
die Grundlagen sind wichtig, ohnedenen wirst du ewig Hilfe brauchen.Eine Datei kannst du einfach mit File.ReadAllLines Zeilenweise auslesen. Zurück erhälst du ein String-Array. Von diesem Array kannst du per Index auf die einzelnen Zeilen zugreifen:
var lines = File.ReadAllLines(@"DATEIPFAD"); var line1 = lines[0];//1. Zeile lesen var line2 = lines[1];//2. Zeile lesen
Wie du siehst, ist der Index Nullbasiert.
Den Teil hinter dem Doppelpunkt bekommst du mit der Split-Methode:
var parts = lines[0].Split(new char[]{':'}, 2);//In maximal 2 Teile teilen var part2 = parts[1].Trim();//Teil hinter demDoppelpunkt nehmen und Leerzeichen entfernen var dbl = double.Parse(part2);//Falls du mit der Zahl rechnen willst
Bei der double.Parse bzw. auch bei der ToString-Methode solltest du CultureInfo.InvariantCulture als 2. angeben, um nicht mit Kultuspezifischen Formatierungen zu arbeiten. (Sonst könntest du das 6,5 auf einem englischen Windows nicht in ein 6.5 wandelt. CultureInfo.InvariantCulture verwendet ein überall einheitliches Format.)
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Stefan FalzModerator Montag, 12. Mai 2014 10:16
- Als Antwort markiert Abdel1992 Montag, 12. Mai 2014 11:05
Alle Antworten
-
Hallo,
die Grundlagen sind wichtig, ohnedenen wirst du ewig Hilfe brauchen.Eine Datei kannst du einfach mit File.ReadAllLines Zeilenweise auslesen. Zurück erhälst du ein String-Array. Von diesem Array kannst du per Index auf die einzelnen Zeilen zugreifen:
var lines = File.ReadAllLines(@"DATEIPFAD"); var line1 = lines[0];//1. Zeile lesen var line2 = lines[1];//2. Zeile lesen
Wie du siehst, ist der Index Nullbasiert.
Den Teil hinter dem Doppelpunkt bekommst du mit der Split-Methode:
var parts = lines[0].Split(new char[]{':'}, 2);//In maximal 2 Teile teilen var part2 = parts[1].Trim();//Teil hinter demDoppelpunkt nehmen und Leerzeichen entfernen var dbl = double.Parse(part2);//Falls du mit der Zahl rechnen willst
Bei der double.Parse bzw. auch bei der ToString-Methode solltest du CultureInfo.InvariantCulture als 2. angeben, um nicht mit Kultuspezifischen Formatierungen zu arbeiten. (Sonst könntest du das 6,5 auf einem englischen Windows nicht in ein 6.5 wandelt. CultureInfo.InvariantCulture verwendet ein überall einheitliches Format.)
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Stefan FalzModerator Montag, 12. Mai 2014 10:16
- Als Antwort markiert Abdel1992 Montag, 12. Mai 2014 11:05