Hahne Geschrieben 5. März 2008 Teilen Geschrieben 5. März 2008 Hallo, ich komme gerade mit meinen kleinen Programm nicht weiter. Und zwar habe ich eine .ini-Datei wo Einstellungen drin gespeichert werden. Wenn ich jetzt in meinen Programm die Optionen aufrufe lese ich mit dem Streamreader alle wichtigen Daten aus: 'myStreamreader dem StreamReader zuweisen mit den Werten "iniPath" + "codetypes.ini" myStreamreader = New System.IO.StreamReader(iniPath & "\codetypes.ini") 'ReadtoEnd iniText = myStreamreader.ReadToEnd 'Füllen von Variablen mit den Einstellungen aus der Ini-Datei ean13 = iniText.Substring(iniText.IndexOf("<ean13>") + 7, iniText.IndexOf("</ean13>") - iniText.IndexOf("<ean13>") - 7) code39 = iniText.Substring(iniText.IndexOf("<code39>") + 8, iniText.IndexOf("</code39>") - iniText.IndexOf("<code39>") - 8) code128 = iniText.Substring(iniText.IndexOf("<code128>") + 9, iniText.IndexOf("</code128>") - iniText.IndexOf("<code128>") - 9) interleaved = iniText.Substring(iniText.IndexOf("<interleaved>") + 13, iniText.IndexOf("</interleaved>") - iniText.IndexOf("<interleaved>") - 13) discrete = iniText.Substring(iniText.IndexOf("<discrete>") + 10, iniText.IndexOf("</discrete>") - iniText.IndexOf("<discrete>") - 10) 'Schliessen der Ini-Datei myStreamreader.Close() myStreamreader = Nothing Wenn ich dann meine Einstellungen vorgenommen habe und wieder auf Speichern drücke sollen alle aktuellen Einstellungen mit Hilfe des Streamwriters ganz neu in die .ini-Datei geschrieben werden: myStreamwriter = New System.IO.StreamWriter("\Program Files\scanner\codetypes.ini", False) myStreamwriter.WriteLine("//ini-File für die Programmeinstellungen") myStreamwriter.WriteLine("//----------------------------------------------------------------") myStreamwriter.WriteLine("") myStreamwriter.WriteLine("//Barcodetypen") myStreamwriter.WriteLine("") myStreamwriter.WriteLine("//EAN 13") myStreamwriter.WriteLine("<ean13>" & ean13 & "</ean13>") myStreamwriter.WriteLine("") myStreamwriter.WriteLine("//Code 39") myStreamwriter.WriteLine("<code39>" & code39 & "</code39>") myStreamwriter.WriteLine("") myStreamwriter.WriteLine("//Code 128") myStreamwriter.WriteLine("<code128>" & code128 & "</code128>") myStreamwriter.WriteLine("") myStreamwriter.WriteLine("//Interleaved") myStreamwriter.WriteLine("<interleaved>" & interleaved & "</interleaved>") myStreamwriter.WriteLine("") myStreamwriter.WriteLine("//Discrete") myStreamwriter.WriteLine("<discrete>" & discrete & "</discrete>") myStreamwriter.WriteLine("") myStreamwriter.Close() myStreamwriter = Nothing Das Problem ist jetzt nur, dass ich jedesmal die Fehlermeldung "IOException wurde nicht behandelt" bekomme in der zusätzlich noch drin steht: The process can not acces the file "hier der Pfad" because it is being used by another process. Ich verstehe nicht wieso er mir sagt, dass die Datei noch von einem anderen Prozess verwendet wird. Ich habe den Streamreader doch geschlossen u.s.w. ... Bei Google habe ich auch schon geguckt. Es gibt zwar eine Menge Einträge zu dieser Fehlermeldung aber ich habe die Erklärungen nicht ganz verstanden. Gruß, Hahne Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 5. März 2008 Teilen Geschrieben 5. März 2008 myStreamreader = New System.IO.StreamReader(iniPath & "\codetypes.ini") myStreamwriter = New System.IO.StreamWriter("\Program Files\scanner\codetypes.ini", False) Diese beiden Zeilen enthalten Fehler. "\" leitet Escape-Sequenzen ein, d.h. um ein "\"-Symbol in den String einzufügen musst Du entweder "\\" schreiben oder vor den String ein "@" setzen. Beispiel: string test = "Verzeichnis\\Unterverzeichnis\\Dateiname"; oder string test = @"Verzeichnis\Unterverzeichnis\Dateiname"; Ausserdem solltest Du nicht in "Program Files" schreiben (es können die Berechtigungen fehlen), sondern an für Konfigurationsdaten vorgesehene Orte. Ein weiteres Problem ist, dass "Program Files" je nach Betriebssystemversion und Sprachversion auch anders benannt sein kann. Generell sollte man keine festen Annahmen darüber machen, von wo das eigene Programm ausgeführt wird (es könnte ja auch in ein anderes Verzeichnis installiert worden sein) und wie der genaue Pfad zu einem Verzeichnis, in dem Konfigurationsdaten abgelegt werden dürfen, lautet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.