| 

.NET C# Java Javascript Exception

1
Also ich habe ein Formular, dass beim Starten eine Datei liest (sofern sie existiert) und in die Datei schreibt, wenn das Fenster geschlossen wird (falls die Datei nicht existiert, wird eine neue Datei erstellt).

Jedoch habe ich das Problem, dass ein Wert nicht gespeichert wird. Ich hab eine Variable deklariert (in einer Klasse, außerhalb einer Funktion)
private string m_msiFileName = String.Empty;


Der Benutzer lädt dann eine Datei mit einem OpenFileDialog. Dieser Variablen wird der Wert zugewiesen.
Beim Schließen soll eben dieser Wert gespeichert werden. Wenn ich einen Haltepunkt an die Stelle setze, dann stimmt der Wert. Jedoch wird in die Datei dann nichts geschrieben. Jedoch ist das nur in dem Fall so.
Es werden noch vier weitere Zeilen in die Datei geschrieben, deren Werte aus Textboxen geladen werden. Diese werden auch korrekt gespeichert, nur bei der Variablen nicht.

Hier mal meine Schreib-Funktion:
/// <summary>
/// Schreibt die Optionen in eine Datei.
/// </summary>
/// <param name="p_strFilename">Dateiname</param>
private void _WriteOptionToFile(string p_strFilename)
{
//Wenn die Datei existiert, soll diese gelöscht werden.
if (File.Exists(p_strFilename))
{
File.Delete(p_strFilename);
}

StreamWriter sw = new StreamWriter(DAT_FILENAME, false);
sw.WriteLine(textBox1.Text);
sw.WriteLine(textBox2.Text);
sw.WriteLine(textBox3.Text);
sw.WriteLine(textBox4.Text);
sw.WriteLine(m_msiFileName);

sw.Flush();
sw.Close();
}


Woran könnte es noch liegen?

Edit: Hier noch meine Funktion, in der die Datei geladen wird:
if (openMsiFileDialog.ShowDialog() == DialogResult.OK)
{
m_msiFileName = openMsiFileDialog.FileName;
_ShowLoadedFile(openMsiFileDialog.FileName);

if (textModulesPath.Text != String.Empty)
{
_MakeArchiveVisible(true);
}
else
{
_MakeArchiveVisible(false);
}
}
18.01.2013
starki 603 1 8
starki 603 1 8
ich habe den Eindruck, der Fehler liegt außerhalb des hier wiedergegebenen Code
puls200 18.01.2013
Ich denke auch, dass das Problem außerhalb des hier geposteten Codes liegt. Habe deinen Code gerade mal ausprobiert und bei mir schreibt der alle Werte in die Datei. Bist du sicher, dass die Variable m_msiFileName nicht irgendwo anders überschrieben wird?
multi1209 18.01.2013
OK, ich hab den Fehler gefunden. Er hat die Datei in einen anderen Ordner geschrieben und dort hat er aber auch alle Zeilen geschrieben...
starki 18.01.2013
1 Antwort
1
Ich sehe in Deinem Quelltext folgendes Problem:

StreamWriter sw = new StreamWriter(DAT_FILENAME, false);

müsste es nicht heißen:

StreamWriter sw = new StreamWriter(p_strFilename, false);

wenn der Parameter den vollständigen Pfad und den Dateinamen enthält?
18.01.2013
edvservice 1,4k 1 6
OK, das ist auch ein Fehler, den ich übersehen hab. Aber sowohl p_strFilename als auch DAT_FILENAME haben in meinem Programm denselben Wert, deswegen hab ich wahrscheinlich nicht bemerkt, dass da was falsches steht. Habs geändert, mein eigentliches Problem besteht immer noch.
starki 18.01.2013

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH