Hahne Geschrieben 5. März 2008 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
Bubble Geschrieben 5. März 2008 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden