Announcement

Collapse
No announcement yet.

Streamwriter verliert Ausgabepfad

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Streamwriter verliert Ausgabepfad

    Hallo,

    ich habe das Problem, dass mein Streamwriter den Ausgabepfad verliert. Also die "wrDatei" in meinem Fall den Wert null annimmt.

    In meinem Programm gibt es zwei Forms Form1 und Form2.
    In Form1 lese ich mit folgendem Befehl den Ausgabepfad ein:

    [highlight=c#]private void AusgabeButton_Click(object sender, EventArgs e)
    {
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
    saveFileDialog1.FileName = Path.GetDirectoryName(saveFileDialog1.FileName) + "\\Ausgabe.txt";
    wrDatei = new StreamWriter(saveFileDialog1.FileName);
    AusgabePfad.Text = Path.GetDirectoryName(saveFileDialog1.FileName);
    AusgabeDatei.Text = Path.GetFileName(saveFileDialog1.FileName);
    }
    }[/highlight]

    nachdem das erledigt ist noch weitere Daten eingelesen wurden öffne ich kurzzeitig zum ändern verschiedener Daten das Form2 und schließe dieses nachdem ich die Daten wieder an das Form1 übergeben hab.

    möchte ich nun mit dem Befehl

    [highlight=c#]wrDatei.WriteLine("Irgendein Text")[/highlight]

    einfach nur Text auf die Datei ausgeben kommt für diesen Satz die Fehlermeldung:

    NullReferenceException wurde nicht behandelt.
    (wrDatei hat den Wert null obwohl ich ja anfangs einen Pfad ausgewählt habe!)

    Verlasse ich die Form1 nicht und verarbeite die Daten Testweise mal in Form1 geht es.
    (wrDatei hat auch den Pfad nicht verloren)

    Wisst ihr vielleicht woran das liegen könnte?
    Ich bin wirklich schon fast dran verzweifelt. Kann natürlich auch sein dass ich auf dem Schlauch stehe

    Ich Danke schonmal im vorraus für eure Unterstützung.

    PS: Ich programmiere in C# ich weiß nicht wieso nur C an den Codes steht sorry.

    Gruß
    56K

  • #2
    Ich kann aus deinem Text nur erraten das du nicht mehr die gleiche Instanz von Form1 verwendest und dessen wrDatei Klassenvariable halt noch null ist weil du in dieser Instanz die AusgabeButton_Click Methode noch nicht ausgeführt hast.
    So wie das aussieht solltest du eh überall wo du wrDatei benutzt zuvor prüfen ob die null ist. Die wird ja nur nach einer gewissen Userinteraktion gesetzt die nicht zwingend erfolgreich stattgefunden haben muß.

    Anderes:

    Im allgemeinen ist es eher falsch einen Streamwriter so zu benutzen wie du es da gerade machst. Ihn dauerhaft offen zu halten ist unüblich und nur für ganz spezielle Randcases sinnvoll. Du solltest ihn eher dann erzeugen wenn du in brauchst und danach direkt wieder disposen.

    Du scheinst keine Datei auswählen zu wollen sondern eher einen Folder. Dazu gibt es den FolderBrowserDialog.

    In AusgabeDatei.Text wird so immer "Ausgabe.txt" stehen. Es jedesmal wieder reinzuschreiben scheint überflüssig wenn es immer "Ausgabe.txt" ist.

    Comment

    Working...
    X