vb6 - Error met file load als op CANCEL drukken

Status
Niet open voor verdere reacties.

satriano17

Gebruiker
Lid geworden
30 sep 2012
Berichten
342
Met onderstaande code open ik eenvoudig een bestand.
Maar het werkt alleen goed als ik een bestand open.
Als ik eerst het bestand wil openen, maar vervolgens op ANNULEREN druk
(ik wil dus geen bestand meer openen) dan krijg ik foutmelding.

BAD FILE NAME OR NUMBER

Ik heb geprobeerd om aan het begin van de Load ON ERROR RESUME NEXT in te voeren
om de error te voorkomen
maar het programma crasht dan volledig (steeds als ik op Annuleren druk)
Code:
Private Sub load_Click()
Dim Slash As String
  Dim tekst As String, kFile As String
  CommonDialog1.Filter = "Text Files (*.txt)|*.txt"
 
If Right(App.Path, 1) <> "\" Then Slash = "\"
CommonDialog1.InitDir = App.Path & Slash & "TEST"
CommonDialog1.FileName = App.Path & Slash & "TEST" & "\*.txt"
CommonDialog1.ShowOpen
Open CommonDialog1.FileName For Input As #1

  tekst = ""
  tekst2 = ""
  Do Until EOF(1)
    Line Input #1, kFile
    tekst = tekst & kFile
    Line Input #1, kFile
    tekst2 = tekst2 & kFile
    Loop
  Text7.Text = tekst
  Text8.Text = tekst2
  Close #1
End Sub
Ho kan ik de error voorkomen?
Bedankt
 
Laatst bewerkt:
Na CommonDialog1.ShowOpen, dit:
Code:
If CommonDialog1.FileName <> "" Then
 
Nu verlaat je dus de routine als er een bestand gekozen is.
Dat lijkt me niet de bedoeling.
 
Ja, maar als ik IF...THEN zet moet een End If staan
Nu zo
Code:
......
CommonDialog1.FileName = App.Path & Slash & "Test" & "\*.txt"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Open CommonDialog1.FileName For Input As #1
End If
.......
nog error
En ook als ik de END IF net voor Close# krijg nog steeds error
 
Laatst bewerkt:
Code:
CommonDialog1.CancelError = True
 
Alphamax, niet opgelost

Als ik in de Commondialog propertjes Cancel op True zet dan krijg ik een ander errror
Code:
Cancel was Selected

In jaren nooit zoiets meegemaakt .
 
Code:
Private Sub load_Click()

    CommonDialog1.CancelError = True

    On Error GoTo ErrorHandler

    sPath = App.Path
    With CommonDialog1
        .DialogTitle = "Open"
        .Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
        .InitDir = sPath & "\TEST"
        .FileName = sPath & "\TEST\*.txt"
        .ShowOpen
        sFile = .FileName
    End With


    lFileNumber = FreeFile
    Open sFile For Input As #lFileNumber
    tekst = ""
    tekst2 = ""
    Do Until EOF(1)
        Line Input #lFileNumber, kFile
        tekst = tekst & kFile
     Loop
    Text7.Text = tekst
    Close #lFileNumber
    
    Exit Sub

ErrorHandler:

    MsgBox "Cancel clicked."

End Sub
 
Laatst bewerkt:
Of doe het simpel zo:
Code:
If CommonDialog1.FileName = "" Then Exit Sub
 
Niet opgelost, Aphamax , met uw tip.
(ik krijg steeds CANCEL CLICKED ook als ik iets laadt)

en Edmoor.:Altijd zelfde error.
Zoals gezegd In jaren nooit zoiets meegemaakt . Soms ik had met On error resume next opgelost, moest iets zjin.
En de routine is simpel. Wat te zien is .
 
Plaats je project eens.
 
(ik krijg steeds CANCEL CLICKED ook als ik iets laadt)

Dat komt omdat jouw text bestand een even aantal regels heeft.
Probeer maar eens met een oneven aantal regels.
En probeer ook maar eens te achterhalen waarom.
 
Hier mijn klein project.
Ik heb alleen de Load-save module volledig extract.
 

Bijlagen

Laatst bewerkt:
De CommonDialog1 zit er niet in.
 
jawel. zit erin. Pas gecontroleerd. Commondialog1
Zonder uw tip. Load werkt zolang ik iets laadt. Als ik op CANCEL druk dan error
 

Bijlagen

Laatst bewerkt:
Doe hem eens zo:
Code:
Private Sub load_Click()
  Dim tekst As String, kFile As String
  
  With CommonDialog1
    .Filter = "Text Files (*.txt)|*.txt"
    .InitDir = App.Path & "\" & "TEST"
    .ShowOpen
    If .FileName = "" Then
      MsgBox "Op Cancel geklikt"
      Exit Sub
    End If
    Open .FileName For Input As #1
  End With
  
  tekst = ""
  tekst2 = ""
 
  Do Until EOF(1)
    Line Input #1, kFile
    tekst = tekst & kFile
    Line Input #1, kFile
    tekst2 = tekst2 & kFile
  Loop
  
  Text7.Text = tekst
  Text8.Text = tekst2
  
  Close #1
End Sub
 
Nu wel !! Edmoor
IK wil ook rustig kijken om te begrijpen hoe in elkaar zit uw aanpassing.

Maar Het werkt!

Zeer bedankt, Edmoor
En Alphamax voor de geduld.
Dank U
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan