Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - In caso di errore Vai a....
Forum - Visual Basic 6 - In caso di errore Vai a....

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti ragazzi...

ho un problema...

Ho fatto un' applicazione che scarica in ftp determinati files....

vorrei però che se la connessione non c'è cioè che non riesce a connettersi  (dando errore)

Ripeta all'infinito sempre la stesa azione
fino a quando non si connette e va avanti...

ho fatto un On error goto... ma...

e come se lo leggesse una sola volta...

cioè, la prima volta che non riesce a connettersi
legge "on error goto..." e svolge... la seconda no!" e infatti mi da errore! (non sono neanche del tutto sicuro che legga la prima volta)

Potete dirmi il perchè, e una soluzione per Ovviare al problema?

GRazie MILLE!

PM Quote
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 21:56
Venerdì, 23/05/2008
Posta il codice per intero per favore.


Il mio blog: https://piero.dev
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:01
Venerdì, 23/05/2008
Codice sorgente - presumibilmente VB.NET

  1. Again:
  2. Dim a As Integer
  3. Dim b As Integer
  4. a = 0
  5. b = 0
  6. If Inet1.StillExecuting Then Exit Sub
  7.  
  8. On Error GoTo Error
  9. ResumeDownload:
  10. on error goto Again
  11. Inet1.Execute "", "GET " & "Update.exe" & " " & "Update.exe"
  12. DoEvents
  13.  
  14. Pause 5000
  15. If Dir(App.Path & "\Update.exe") = "" Then
  16. a = a + 1
  17. If a = 4 Then GoTo Error
  18. GoTo ResumeDownload
  19. Else
  20. MsgBox "yeah"
  21. End If
  22.    
  23. Error:
  24. If Inet1.StillExecuting Then Exit Sub
  25.  
  26.  
  27. On Error GoTo Error2
  28. ResumeDownload2:
  29. On Error GoTo ResumeDownload
  30. On Error GoTo Again
  31. Inet1.Execute "", "GET " & "IP.txt" & " " & "IP.txt"
  32. DoEvents
  33.  
  34. Pause 5000
  35. If Dir(App.Path & "\IP.txt") = "" Then
  36. b = b + 1
  37. If b = 4 Then GoTo Error2
  38. GoTo ResumeDownload2
  39. Else
  40. Pause 3000
  41. Open App.Path & "\IP.txt" For Input As #1
  42. While Not EOF(1)
  43. Text2.Text = Input(LOF(1), #1)
  44. Wend
  45. Close #1
  46. y = Text2.Text
  47.  
  48. Z = Split(y, ":")
  49. Text2.Text = Z(0)
  50. Text3.Text = Z(1)
  51.  
  52. TCP.Close
  53.  
  54. DoEvents
  55. Command1_Click
  56. End If
  57.  
  58. DoEvents
  59.  
  60. Error2:
  61. GoTo Again



questo è il codice da me usato...

Provo intanto a fare altri tentativi...



UPDATE:

Niente Da fare... Ho provato a metterci una msgbox e una pausa di 4 secondi.. ho riscritto più volte On error goto... ma niente... l'errore persiste...


Attendo risposte...

E grazie per l'assistenza

Ultima modifica effettuata da il 23/05/2008 alle 23:18
PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 8:26
Sabato, 24/05/2008
fai un while testando che Err sia vuoto cioè:
Codice sorgente - presumibilmente Visual Basic 6

  1. while err.Description<>""
  2. 'ripeti le operazioni
  3. wend


utilizzando sempre la on error resume next.
Adesso non ricordo bene come funziona Err prova a cercare un po su internet. Comunque dovrebbe essere vuoto se non ci sono errori.

Ultima modifica effettuata da Overflow il 24/05/2008 alle 8:27
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:22
Sabato, 24/05/2008
Quindi se è vuoto... non ci sono errori...

While err.Description<>""
on error goto Again
Wend

dovrebbe essere questo... Ora faccio una ricerca..

Grazie del consiglio.. spero funzioni...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:00
Sabato, 24/05/2008
Niente da fare.... c'è sempre lo stesso problema... forse sbaglio io nel codice però...

perchè non ho capito bene come usarlo...

cioè io se volessi lanciare un file inesistente (causando l'errore)

scriverei così:

Codice sorgente - presumibilmente Visual Basic 6

  1. Shell App.Path & "\ciao.exe"
  2.  
  3. While Err.Description <> ""
  4. Shell App.Path & "\ciao.exe"
  5. Wend



solo che l'errore si ripresenta, e non legge il ciclo while


Potresti Illuminarmi per Favore?

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 17:53
Sabato, 24/05/2008
prova con err.number:
Codice sorgente - presumibilmente VB.NET

  1. on error resume next
  2. while err.number <>0
  3. 'esegui operazioni
  4. wend


prova in questo modo.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:08
Sabato, 24/05/2008
sembrqa funzionare... solo che questo ciclo manda in tilt il progr... provo a metterci una pausa e ti faccio sapere...


Grazie ancora!!


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:26
Sabato, 24/05/2008
si... credo che il problema sia TAMPONATO per ora...
però vedi...

vorrei che facessse questo solo se l'errore è "impossibile connettersi all'host remoto"

so che gli errori hanno un numero... come posso sapere il loro?


aspetta forse basta mettere:

msgbox err.number?


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo