Entwickler-Ecke
IO, XML und Registry - Schleifenproblem
AndreasHaepp - Mi 05.04.06 10:23
Titel: Schleifenproblem
Hallo zusammen,
dies hier ist mein erster Beitrag in diesem Forum, ich bin noch ein blutiger Anfänger...!
Ich hoffe das es den einen oder anderen Progammierer gibt der mir hier und da ein bisschen unter
die Arme greifen kann.
Und so schaut's aus...:
Ich habe eine Textdatei mit folgendem Inhalt...
1111
2222
3333
4444
5555
Nun möchte ich diesen Inhalt mittels einer Schleife in eine ListBox einlesen.
So hab ich es mir gedacht:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private void cmd_load_Click(object sender, System.EventArgs e) { string var; StreamReader sr = new StreamReader("e:\\test.txt"); while (sr.ReadLine() != null) { var = sr.ReadLine(); LstBox_test.Items.Add(var); } } |
Dann bekomme ich folgende Fehlermeldung:
An unhandled exception of type 'System.ArgumentNullException' occurred in system.windows.forms.dll
Additional information: Value cannot be null.
Kann das überhaupt funktionieren? Ist das die richtige Schleife?
Vielen vielen Dank schonmal...
...Mega-Lob an die Forum-Bauer!
mfg Andi
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am Mi 05.04.2006 um 11:02
Christian S. - Mi 05.04.06 11:02
Hallo und :welcome: in der Entwickler-Ecke!
Nein, so kann das nicht gehen. Folgender Fehler: Du rufst Readline einmal in der While-Bedingung auf und einmal im Schleifenrumpf. Dadurch gehst Du
zweimal eine Zeile weiter und irgendwann kracht es halt, weil die Datei zu Ende ist.
Im Schleifenkopf solltest Du stattdessen auf sr.EndOfStream prüfen!
AndreasHaepp hat folgendes geschrieben: |
...Mega-Lob an die Forum-Bauer! |
Vielen Dank! :-)
Grüße
Christian
AndreasHaepp - Mi 05.04.06 12:06
Wahnsinn, geht das schnell...
Danke für die fixe Antwort. ;)
Nur leider bring ich's nicht hin.
Wenn ich dich richtig verstanden habe muss ich nur...
C#-Quelltext
1:
| while (sr.ReadLine() != null) |
durch...
C#-Quelltext
1:
| while (sr.EndOfStream) |
oder so ähnlich ersetzen.
Aber "EndOfStream" steht meinem Objekt "sr" nicht zur Verfügung. (Ich hab .NET FW 1.1)
Gott ist das deprimierend. Nicht mal so eine Kleinigkeit funzt... :cry:
Andi
Coreyl - Mi 05.04.06 12:16
Wilkommen *wink
hier mal ein code der dir helfen wird ;)
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| string zeile = ""; StreamReader errLog = new StreamReader(Program.logFile); while ((zeile = errLog.ReadLine()) != null) { output_box.Text += zeile; output_box.Text += System.Environment.NewLine; } |
der code geht selbsttändig jede zeile durch und schreibt sie dann raus
willst du meinetwegen jede zeile in eine andere datei parsen dann müsste es etwa so aussehen
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| string zeile = ""; StreamReader Reader = new StreamReader(Program.logFile); StreamWriter Writer = new StreamWriter(path?); while() { Writer.Write(zeile); } |
hoffe ich konnte dir behilflich sein
Moderiert von
raziel: Code- durch C#-Tags ersetzt
AndreasHaepp - Mi 05.04.06 13:16
Oh man!! Ich bin echt ein Held... :oops:
War doch klar das es nicht läuft wenn ich in einem Schleifendurchlauf 2x ReadLine() ausführe.
Nu geht's...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| private void cmd_load_Click(object sender, System.EventArgs e) { string var = "";
StreamReader sr = new StreamReader("e:\\test.txt"); while ((var = sr.ReadLine()) != null) { LstBox_test.Items.Add(var); } } |
Vielen Dank noch mal...
Die nächsten Fragen lassen sicher nicht sehr lange auf sich warten... :roll:
Bis dann
Andi
Coreyl - Mi 05.04.06 16:01
schön das wir dir helfen konnten!
Solltest du Antworten haben werden wir gerne ausführliche, detaillierte Fragen zusenden ;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!