Autor Beitrag
AndreasHaepp
Hält's aus hier
Beiträge: 3

WIN XP Prof, LINUX SME, NOVELL 5.0, WIN 2K Server
VS 2003
BeitragVerfasst: Mi 05.04.06 10:23 
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:
ausblenden 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 user profile iconChristian S.: Topic aus C# - Die Sprache verschoben am Mi 05.04.2006 um 11:02
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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!

user profile iconAndreasHaepp hat folgendes geschrieben:
...Mega-Lob an die Forum-Bauer!
Vielen Dank! :-)

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
AndreasHaepp Threadstarter
Hält's aus hier
Beiträge: 3

WIN XP Prof, LINUX SME, NOVELL 5.0, WIN 2K Server
VS 2003
BeitragVerfasst: 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...
ausblenden C#-Quelltext
1:
while (sr.ReadLine() != null)					

durch...
ausblenden 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
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 26

XPP
VS 05, TextEditor
BeitragVerfasst: Mi 05.04.06 12:16 
Wilkommen *wink

hier mal ein code der dir helfen wird ;)

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
string zeile = ""//string erzeugen
StreamReader errLog = new StreamReader(Program.logFile); //reader erzeugen
while ((zeile = errLog.ReadLine()) != null)  //schleifenstart, jede zeile wird gelesen und an ZEILE übergeben
            {
                output_box.Text += zeile; //meiner textbox wird die zeile hinzugefügt
                output_box.Text += System.Environment.NewLine; //leerzeile ;)
            }

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

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
//pseudocode
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 user profile iconraziel: Code- durch C#-Tags ersetzt

_________________
Von allen Dingen die mir Verloren gegangen, bin ich am meisten an meinem Verstand gehangen
AndreasHaepp Threadstarter
Hält's aus hier
Beiträge: 3

WIN XP Prof, LINUX SME, NOVELL 5.0, WIN 2K Server
VS 2003
BeitragVerfasst: 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...
ausblenden 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
ontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 26

XPP
VS 05, TextEditor
BeitragVerfasst: 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 ;)

_________________
Von allen Dingen die mir Verloren gegangen, bin ich am meisten an meinem Verstand gehangen