Runtime Error 62 in Funktion

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Alex2000.

    Runtime Error 62 in Funktion

    Hallo zusammen

    Folgendes Problem. Die untenstehende Funktion prüft
    a) ob eine bestimmte Datei existiert oder nicht. Wenn nein, wird sie angelegt
    b) ob ein bestimmter Ordner existiert oder nicht. Wenn nein, wird er angelegt
    Weiterhin werden noch Optionen aus einem File ausgelesen.
    Meine Testerin bekommt aber nun irgendwo in dieser Funktion einen Runtime Error 62.
    Nur Punkte a und b im Code sind neu, der Rest war in der Vorversion schon drin.

    Habt ihr eine Idee?

    Liebe Grüsse
    KlyX


    Visual Basic-Quellcode

    1. Public Sub readoptions()
    2. DoEvents
    3. 'Diese Funktion liest die Optionen aus der Optionsdatei und
    4. 'setzt diese im Programm um
    5. 'Datei öffnen und einlesen
    6. Open App.Path & "\data\options.dat" For Input As #11
    7. Input #11, mitschnitt
    8. Input #11, minirec
    9. Close #11
    10. 'Optionen in Optionsfelder lesen
    11. vol_standard = "80"
    12. main.option_mitschnitt.Text = mitschnitt
    13. main.option_minirec.Text = minirec
    14. 'prüfen ob internal.dat vorhanden ist
    15. 'und Daten einlesen
    16. Dim FSO As New FileSystemObject
    17. If FSO.FileExists(App.Path & "\data\internal.dat") Then
    18. Open App.Path & "\data\internal.dat" For Input As #13
    19. Input #13, volumea
    20. Close #13
    21. Else
    22. Open App.Path & "\data\internal.dat" For Output As #14
    23. Print #14, vol_standard
    24. Close #14
    25. End If
    26. main.volume.Value = volumea
    27. main.player.settings.volume = volumea
    28. 'Prüfen ob recordingverzeichnis vorhanden
    29. Set fs = New FileSystemObject
    30. If Not fs.FolderExists(App.Path & "\recordings\songhistory") Then MkDir (App.Path & "\recordings\songhistory")
    31. End Sub
    Chris' Weblog - Mein Blog rund um Vieles :D
    Hallo, versuch´s mal so:

    Visual Basic-Quellcode

    1. Public Sub readoptions()
    2. DoEvents
    3. 'Diese Funktion liest die Optionen aus der Optionsdatei und
    4. 'setzt diese im Programm um
    5. Dim FSO As New FileSystemObject
    6. Dim FF As Integer
    7. FF = FreeFile
    8. 'Datei öffnen und einlesen
    9. Open App.Path & "\data\options.dat" For Input As #FF
    10. mitschnitt = Input(LOF(FF), #FF)
    11. minirec = Input(LOF(FF), #FF)
    12. Close #FF
    13. 'Optionen in Optionsfelder lesen
    14. vol_standard = "80"
    15. main.option_mitschnitt.Text = mitschnitt
    16. main.option_minirec.Text = minirec
    17. FF = FreeFile
    18. If FSO.FileExists(App.Path & "\data\internal.dat") Then
    19. Open App.Path & "\data\internal.dat" For Input As #FF
    20. volumea = Input(LOF(FF), #FF)
    21. Close #FF
    22. Else
    23. Open App.Path & "\data\internal.dat" For Output As #FF
    24. Print #FF, vol_standard;
    25. Close #FF
    26. End If
    27. main.volume.Value = volumea
    28. main.player.settings.volume = volumea
    29. 'Prüfen ob recordingverzeichnis vorhanden
    30. Set fs = New FileSystemObject
    31. If Not fs.FolderExists(App.Path & "\recordings\songhistory") Then MkDir (App.Path & "\recordings\songhistory")
    32. End Sub

    Mit der LOF() oder der EOF() Funktion beim Einlesen der Datei kann diesen Fehler vermeiden.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @alexc: wenn ich das beantworten könnte, hätte ich es getan. Da der Fehler bei mir selbst nicht aufgetreten ist und sie nur die Executable bekommt, bekomme ich da keine Informationen.
    Aber ich werde mal die Variante von wincnc probieren.
    Danke schon mal.

    KlyX

    EDIT: Also die Version von wincnc führte nun auch zu einem Laufzeitfehler bei mir ;) Das heisst dass ich nun aber vermutlich zumindest weiss, wo das Problem liegt. Und zwar scheint die gelesene Datei meiner Testerin noch in einer alten Version vorzuliegen. Muss ich wohl noch ne Routine einbauen, welche die zeile anfügt, wenn sie nicht vorhanden ist ;-). Da das Programm per Updater aktualisiert wird, kann ich derzeit keine zusätzlichen Dateien mitnehmen ausser die EXE.

    KlyX
    Chris' Weblog - Mein Blog rund um Vieles :D

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

    Ich hab noch ein mal deine Code angeschaut und da ist mir was aufgefallen !

    hier deklarierst du die variable:

    Visual Basic-Quellcode

    1. Dim FSO As New FileSystemObject


    und hier verwendest du sie schon wieder nur falsch geschrieben:

    Visual Basic-Quellcode

    1. Set fs = New FileSystemObject
    2. If Not fs.FolderExists(App.Path & "\recordings\songhistory") Then MkDir (App.Path & "\recordings\songhistory")


    an deine Stelle werde ich die Code in Form Code rein schreiben und nicht in irgend-welche Module /Classen das ist der erste fehler.
    Schau deine Code ganau an, seit wann zuerst FSO Objeckt verwenden und dann initialisieren:


    Visual Basic-Quellcode

    1. Dim FSO As New FileSystemObject
    2. 'deine code....
    3. If FSO.FileExists(App.Path & "\data\internal.dat") Then
    4. '......
    5. 'Prüfen ob recordingverzeichnis vorhanden
    6. Set fs = New FileSystemObject
    7. If Not fs.FolderExists(App.Path & "\recordings\songhistory") Then MkDir (App.Path & "\recordings\songhistory")



    wenn dann so:

    Visual Basic-Quellcode

    1. Public Sub readoptions()
    2. DoEvents
    3. 'Diese Funktion liest die Optionen aus der Optionsdatei und
    4. 'setzt diese im Programm um
    5. Dim FSO As New FileSystemObject
    6. Dim FF As Integer
    7. Set FSO = New FileSystemObject
    8. FF = FreeFile
    9. 'Fehler Routine eibauen
    10. 'Datei öffnen und einlesen
    11. Open App.Path & "\data\options.dat" For Input As #FF
    12. mitschnitt = Input(LOF(FF), #FF)
    13. minirec = Input(LOF(FF), #FF)
    14. Close #FF
    15. 'Optionen in Optionsfelder lesen
    16. vol_standard = "80"
    17. main.option_mitschnitt.Text = mitschnitt
    18. main.option_minirec.Text = minirec
    19. FF = FreeFile
    20. 'Fehler Routine einbauen
    21. If FSO.FileExists(App.Path & "\data\internal.dat") Then
    22. Open App.Path & "\data\internal.dat" For Input As #FF
    23. volumea = Input(LOF(FF), #FF)
    24. Close #FF
    25. Else
    26. Open App.Path & "\data\internal.dat" For Output As #FF
    27. Print #FF, vol_standard;
    28. Close #FF
    29. End If
    30. main.volume.Value = volumea
    31. main.player.settings.volume = volumea
    32. 'Prüfen ob recordingverzeichnis vorhanden
    33. If Not FSO.FolderExists(App.Path & "\recordings\songhistory") Then MkDir (App.Path & "\recordings\songhistory")
    34. End Sub


    Da wo du deine Werte aus Dateien einliest würde ich eine Fehlerbehandlungs Routine einbauen und dann schauen was passiert !

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