Datei erstellen und gleich auslesen: Fehler

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Psycho.

    Datei erstellen und gleich auslesen: Fehler

    Hi Leutz,

    in meinem Programm lass ich eine cfg datei erstellen (sofern die datei nicht vorhanden ist) und dann gleich wieder auslesen. allerdings kommt dann folgende Meldung: "C:\Users\Simon\Documents\ProjektData001\Settings.cfg" zugreifen, da sie von einem anderen Prozess verwendet wird.



    Der Code lautet ab dem erstellen wie folgt:

    VB.NET-Quellcode

    1. ...
    2. If System.IO.File.Exists(File001) = False Then
    3. System.IO.File.Create(File001)
    4. FileText001 = String.Format("Version:{0}", Version001.ToString)
    5. FileText001 = FileText001 & vbCrLf & String.Format("Datum:{0}|", DateTime.Now.ToString)
    6. FileText001 = FileText001 & vbCrLf & String.Format("Installation:{0}|", Installation)
    7. FileText001 = FileText001 & vbCrLf & String.Format("Starts:{0}|", Starts001.ToString)
    8. FileText001 = FileText001 & vbCrLf & String.Format("Style:{0}|", KryptonManager.GlobalPaletteMode.ToString)
    9. Dim SettingsSW As New System.IO.StreamWriter(File001)
    10. SettingsSW.Write(FileText001)
    11. SettingsSW.Close()
    12. End If
    13. Dim File001StreamReader As New System.IO.StreamReader(File001)
    14. FileText001 = File001StreamReader.ReadToEnd
    15. Label.Text = FileText001
    16. ...


    Bitte um Hilfe!

    MfG
    W4llh4ck
    Du könntest den Inhalt auch in einem StringBuilder zwischenspeichern und daraus lesen

    Was hat das mit seiner Frage zu tun ?
    Genausogut könntest du auf die Frage
    Wie komm ich mit dem Auto von München nach Frankfurt ?
    Antworten
    Nimm doch den Zug

    Gruss

    mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    Den StreamWriter verwende ich ja.

    Dann hab ich folgende Imports:

    VB.NET-Quellcode

    1. Imports System.IO.File
    2. Imports System.IO.Directory
    3. Imports System.IO.StreamReader
    4. Imports System.IO.StreamWriter


    Wie mach ich das mit dem Sleep? und mit dem Closen versteh ich auch net. Der "Fehler" kommt ja schon bei "Dim File001StreamReader As New System.IO.StreamReader(File001)".

    @ Beep!: ich würde rechenzeit sparen, wenn ich nicht noch ein else in die if-abfrage einbauen würde *g*
    Hallo Psycho,

    der Fehler tritt auf, weil du die Datei öffnen willst, bevor sie geschlossen wurde.
    Die Festplatte und Windows brauchen halt ein wenig Zeit zum Schliessen einer Datei

    Sleep verwendest du so

    VB.NET-Quellcode

    1. System.Threading.Thread.Sleep(500)

    Durch diese Zeile wartet dein Prog eine halbe Sekunde bevor weitergemacht wird.

    Gruss

    mikeb69

    VB.NET-Quellcode

    1. System.Threading.Thread.Sleep(500)

    Klappt doch nicht!

    Hier eine Möglichkeit wie es funktioniert:

    VB.NET-Quellcode

    1. Public Class FormManager
    2. Dim PtojectFolder As String = FileIO.SpecialDirectories.MyDocuments & "\ProjektData001"
    3. Dim File001 As String = PtojectFolder & "\Settings.cfg"
    4. Dim FileText001 As String
    5. Private Sub FormManager_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. If System.IO.File.Exists(File001) = False Then
    7. Dim str As New System.IO.FileStream(File001, IO.FileMode.Create) 'Dashier ist janz wischdisch
    8. str.Close() 'Dann dasda!!!!
    9. FileText001 = String.Format("Version:{0}|", Version001)
    10. FileText001 = FileText001 & vbCrLf & String.Format("Datum:{0}|", DateTime.Now)
    11. FileText001 = FileText001 & vbCrLf & String.Format("Installation:{0}|", Installation001)
    12. FileText001 = FileText001 & vbCrLf & String.Format("Starts:{0}|", Starts001)
    13. FileText001 = FileText001 & vbCrLf & String.Format("Style:{0}|", KryptonManager.GlobalPaletteMode)
    14. Dim File001StreamWriter As New System.IO.StreamWriter(File001)
    15. File001StreamWriter.Write(FileText001)
    16. File001StreamWriter.Close()
    17. End If
    18. End Sub
    19. End Class