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 - Avviso di sovrascrizione file o mancata creazione
Forum - Visual Basic 6 - Avviso di sovrascrizione file o mancata creazione

Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 18:50
Venerdì, 06/11/2009
Gironzolando per la rete ho trovato questo esempio per la creazione di un file di testo

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2.     Open "C:\esempio.txt" For Output As #1
  3.         Print #1, "Hello, World!"
  4.     Close #1
  5. End Sub



Volevo sapere quale era la soluzione più semplice per notificare la sovrascrizione in caso il file esistesse già o la notifica di eventuali errori in caso di mancata creazione per cause varie

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 20:23
Venerdì, 06/11/2009
allora Aprire un file in Output significa che se non esiste lo crea e ci scrive dentro Hello world! se esiste già, ci riscrive dentro hello world!

allora prima di quel codice basta che controlli se il file in questione esiste già e mandi un messaggio di avviso...

per controllare che esista un file devi usare dir(), per esempio: dir("c:\file.txt") che restituirà il nome del file, quindi "file.txt" in caso esista, altrimenti niente... quindi un esempio è:

if dir("C:\file.txt") = "" then
msgbox "non esiste"
else
msgbox "esiste"
end if

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 11:26
Sabato, 07/11/2009
Invece per la gestione di eventuali errori?
Tipo se la cartella non esiste, è protetta da scrittura o altro?
È possibile catturare l'errore o tirare fuori un avviso generico?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 11:34
Sabato, 07/11/2009
si, allora in generale si fa così:

Private Sub ...
On error goto nome_che_vuoi
[...]
codice
[...]
nome_che_vuoi:
if err.description <> "" then 'se la descrizione dell'errore è nulla, quindi se non si è verificato l'errore non fa nulla, ma se non è vuota...
msgbox "Error N°" & err.number & vbcrlf & "Description: " & err.description
end if
End Sub

questo esempio manda il numero e la descrizione dell'errore (sempre se ce n'è stato uno)

Ultima modifica effettuata da GrG il 07/11/2009 alle 11:35
PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 14:15
Sabato, 07/11/2009
Perfetto, evidentemente sbaglio qualcosa

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2.  
  3.     Open "c:\esempio.xml" For Output As #1
  4.             Print #1, "ciao"
  5.             On Error GoTo nome_che_vuoi
  6.    Close #1
  7.  
  8.    
  9. nome_che_vuoi:
  10. If Err.Description <> "" Then 'se la descrizione dell'errore è nulla, quindi se non si è verificato l'errore non fa nulla, ma se non è vuota...
  11. MsgBox "Error N°" & Err.Number & vbCrLf & "Description: " & Err.Description
  12. End If
  13.  
  14. End Sub



In pratica creo il file esempio.xml e lo metto in sole lettura appositamente per far scattare l'errore. Quando vado a salvare però, invece del MsgBox, mi esce la finestra di debug del Visual Basci che mi indica un errore di accesso al file.
Devo modificare qualcosa nelle opzioni del programma per evitare ch esca quell'avviso invece del mio?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 14:51
Sabato, 07/11/2009
On Error GoTo nome_che_vuoi
lo devi mettere dopo
privat Sub...

deve essere la prima riga, non dopo la Open..

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 15:21
Sabato, 07/11/2009
Grazie!
Prima di tutto per la competenza ma anche per l'immensa pazienza...

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 19:10
Sabato, 07/11/2009
di nulla :k:

PM Quote