Hallo Zusammen.
Ich stehe momentan vor dem Problem, dass bei meinem Programm die alten Dateien nicht richtig durch die geänderten Dateien ersetzt werden.
Zum Beispiel lese ich mit meinem, Programm eine Liste von Mitarbeitern ein. Nun kann ich über das Programm neue Mitarbeiter hinzufügen, löschen oder ändern.
Wenn ich einen Eintrag lösche oder änder wird eine zweite Datei mit dem geänderten Inhalt erstellt und diese Datei ersetzt die Originaldatei und wird dabei mit dem Namen der Originaldatei versehen. Soweit zur Theori. In der Praxis ist die Datei aber leider leer und heisst immernoch so, wie die "Änderungs"-Datei.
Hier ein Code-Beispiel:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| private void btn2_Click(object sender, EventArgs e) { string kmit = txtBox1.Text; string nmit = txtBox2.Text; int tnmit = Convert.ToInt32(txtBox3.Text); int fnmit = Convert.ToInt32(txtBox4.Text); int zNr = lstBox1.SelectedIndex; string miAlt = lstBox1.Items[zNr].ToString(); StreamWriter schleife = new StreamWriter(@"T:\transfer\hes\templates\mitarbeiter2.csv", true); System.Collections.IEnumerator entryItr = lstBox1.Items.GetEnumerator(); while (entryItr.MoveNext()) { string entry = entryItr.Current.ToString(); if (entry != miAlt) { schleife.WriteLine(entry); } else { string ersatz = Regex.Replace(entry, miAlt, kmit + ";" + nmit + ";" + ";" + tnmit + ";" + fnmit); schleife.WriteLine(ersatz); } } schleife.Close();
string path = @"T:\transfer\hes\templates\mitarbeiter.csv"; string path2 = @"T:\transfer\hes\templates\mitarbeiter2.csv";
if (!File.Exists(path)) { using (FileStream fs = File.Create(path)) { } }
if (File.Exists(path2)) File.Delete(path2);
File.Move(path, path2);
} |
Was habe ich übersehen? Ich komme einfach nicht dahinter. Würde mich über Hilfe freuen.
Danke im vorraus.
mfg
DevInet
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am Mi 25.08.2010 um 15:54