Entwickler-Ecke
Basistechnologien - Textdateizeile mit Textbox vergleichen
csharpfreak - Do 24.10.13 11:08
Titel: Textdateizeile mit Textbox vergleichen
C#-Quelltext
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: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75:
| private void SaveFile() { otherpath = TB_dir.Text; string filename = "\\config.ini"; using (StreamWriter sw = new StreamWriter(path + filename)) { sw.WriteLine(TB_dir.Text + Environment.NewLine + TB_server.Text + Environment.NewLine + TB_db_name.Text + Environment.NewLine + TB_user.Text + Environment.NewLine + TB_pw.Text); sw.Close(); }
if ( File.Exists(path + "\\" + file)) { string filetext = File.ReadAllText(path + filename); lines = filetext.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); userpath = lines[0];
if (userpath != otherpath) { File.Delete(@userpath+filename);
using (StreamWriter sw2 = new StreamWriter(@otherpath + filename)) { sw2.WriteLine(otherpath + Environment.NewLine + TB_server.Text + Environment.NewLine + TB_db_name.Text + Environment.NewLine + TB_user.Text + Environment.NewLine + TB_pw.Text); sw2.Close(); MessageBox.Show("Datei1 wurde gespeichert"); } } else { File.Delete(@userpath + "\\" + file); using (StreamWriter sw3 = new StreamWriter(otherpath + filename)) { sw3.WriteLine(otherpath + Environment.NewLine + TB_server.Text + Environment.NewLine + TB_db_name.Text + Environment.NewLine + TB_user.Text + Environment.NewLine + TB_pw.Text); sw3.Close(); MessageBox.Show("Datei wurde gespeichert"); } } } else { MessageBox.Show("Konnte nicht in gewünschten Pfad gespeichert werden."); } |
Hallo, ich versuche die erste Zeile einer Textdatei(gibt einen Pfad an) mit der Benutzereingabe in einer Textbox zu vergleichen.
Jedoch klappt meine Bedingung nicht, d.h. obwohl die Zeile aus der Textdatei und die Eingabe in der Textbox nicht übereinstimmen, erkennt das Programm das nicht und löscht auch nichts.
WO liegt hier mein Fehler?
Th69 - Do 24.10.13 11:54
Sorry csharpfreak,
aber da können wir wohl auch nicht helfen. Da hilft nur Debuggen...
P.S: Statt dem Zusammensetzen von Pfaden mittels String-Konketation (+) [mal benutzt du "\\", dann mal wieder nicht] solltest du besser die Path-Klasse und dessen Combine-Methode benutzen.
Ralf Jansen - Do 24.10.13 11:55
Zuviel Code um das als aussenstehender mal schnell zu durchschauen aber ich vermute mal du kommst bei deinen pfaden durcheinander. Bei diesem Code zum Beispiel
Zitat: |
C#-Quelltext 1: 2: 3: 4: 5:
| if ( File.Exists(path + "\\" + file)) { string filetext = File.ReadAllText(path + filename); | |
ist entweder der Kommentar falsch oder der Code ist falsch bzw. zumindest aus meiner Sicht merkwürdig da der Pfad zur Datei 2 mal unterschiedlich ermittelt wird.
Wieso ermittelst du den Pfad nicht einfach nur einmal und dann mit einem eindeutigen Weg dann kann da recht wenig schief gehen;)
Übrigens bei Pfaden hilft dir wunderbar die Path Klasse aus System.IO. Und ein durchgängiges Namensschema sonst kommt mann da leicht durcheinander.
Bei mir wäre das zum Beispiel so. Ordner ist immer irgendwas mit "path" ein Filename immer "file" und nur der Pfad zu einem File also Ordner+Filename ein "path". Kannst du aber halten wie du willst nur mach es durchgängig.
C#-Quelltext
1: 2: 3: 4: 5:
| string path = Path.Combine(dir, file); if(File.Exists(path)) { string filetext = File.ReadAllText(path ); } |
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!