Riconoscere il cambiamento
Hai un problema con Excel? 
Riconoscere il cambiamento
di Angelus (utente non iscritto) data: 05/02/2011
Salve sto creando un applicazione che mi visualizzi in tempo reale, in un form sempre attivo, quando viene modificato un file salvato. nel senso visto che questo file viene aggiornato e i tempi non sono regolari il programma mi deve riconoscere quando viene modificato salve e grazie
di Mik (utente non iscritto) data: 05/02/2011
Ciao angelus
in visual basic esiste un oggetto molto efficente che monitorizza i cambiamenti dei file e farebbe proprio al caso tuo.
in vba di office non mi sembra di aver visto quell'oggetto (o forse sono io che sono orbo).
comunque se non vuoi aspettare che qualcuno ti confermi questo, puoi ovviare subito aggiungendo un oggetto "timer" che ogni tot. minuti/secondi controlla se gli attributi di un file sono stati cambiati...
fammi sapere
ciao
ps. me lo sentivo che saresti andato avanti con i progetti
di Angelus (utente non iscritto) data: 07/02/2011
Salve a tutti e ringrazio in particolare mik sempre molto gentile e tempestivo ;), volevo riferirti che hai convetuto con le mie ipotesi anche se un po’ rudi ma efficaci ;) pensavo che esisteva un metodo più raffinato comunque va bene lo stesso . nel formulare l’eseguibile si crea una anomalia che non riesco a risolvere, mi chiedevo se qualcuno mi aiuta ad individuare il problema. il problema è il seguente quando faccio confrontare la differenza tra prima e dopo ( l’oggetto timer è impostato su 1000) mi da come se ogni secondo viene modificato, per controllare i dati che dovrebbero lavorare li ho fatti visualizzare sul form per verificare la correttezza,. come differenza mi da sempre 6 con conseguenza che entra sempre nella rutime, la cosa strana è che la data e i minuti secondi sono sempre li stessi perché rivela una modifica che non esiste, posto il codice per poterlo visionare grazie a tutti
Dim primo As Date
Dim dopo As Date
Dim conta As Integer
Private Sub Form_Load()
End Sub
Private Sub Timer1_Timer()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set file = FSO.GetFile("c:aggiornadatitorneo4")
dopo = file.datelastmodified
If dopo > prima Then
Label1.Caption = (Val(dopo) - Val(prima))
prima = dopo
Text1.Text = prima
conta = conta + 1
Label1.Caption = ""
Label1.Caption = conta
End If
End Sub
|
di Mik (utente non iscritto) data: 08/02/2011
Angelous, fai caso meglio: hai dichiarato come pubblica la variabile prim(o) e poi la chiamata la fai con prim(a)...è per quello che non va...il resto è ok!
di Angelus (utente non iscritto) data: 08/02/2011
Grrrrrrrrrrrrr. uso sempre nei programmi veri optin explicit ma siccome questo era un programmino da implementare l'ho sorvolato per sbrigarmi senza poi sapere che ci avrei perso molto tempo grrrrrrrrrrrrrrrrrrrrrrrr
comunque non mi stancherò mai di ringraziarti
di Angelus (utente non iscritto) data: 08/02/2011
Ciao mik non vorrei approfittarmi della tua cortesia ma tu cosa mi consigli visto che quel programmino serve perchè ho un file .html che viene aggiornato ogni tot e fino a qui abbiamo trovato come riconoscere il momento della modifica di un file txt, ma se la dobbiamo attribuire al file html che viene creato uno nuovo con titoli diversi ad ogni sessione? e riportare il file html in un file unico txt?
di Angelus (utente non iscritto) data: 08/02/2011
Mik ho provato così ma mi da errore file nen trovato, basta che la faccio passare con file2 = text2.text e mi genera l'errore se cambio file2 con datitorne4 lo trova cosa sbaglio ?
Dim prima As Date
Dim dopo As Date
Dim conta As Integer
Dim file2 As String
Private Sub Command1_Click()
file2 = Text2.Text
End Sub
Private Sub Text1_Change()
prima = dopo
End Sub
Private Sub Timer1_Timer()
If file2 <> "" Then
Set FSO = CreateObject("Scripting.FileSystemObject")
Set file = FSO.GetFile("c:aggiornafile2")
dopo = file.datelastmodified
If dopo > prima Then
Label1.Caption = (Val(dopo) - Val(prima))
prima = dopo
Text1.Text = prima
conta = conta + 1
Label1.Caption = ""
Label1.Caption = conta
End If
End If
End Sub
|
di Mik (utente non iscritto) data: 09/02/2011
Ci sono un pò di cose che non mi sono chiare, comunque in text2 devi memorizzare il percoso completo e nome del file (es.: c:documentipippo.txt)
una cosa...ma non credi che sarebbe il caso di passare a visual basic? ..per le cose che intendi fare è decisamente più completo..
di Angelus (utente non iscritto) data: 09/02/2011
Ciao mik io volevo far passare con la text2.text il completamento del file visto che cambia sempre
es. text2.text = pippo.exe
file2 = text2.text
set file = fso.getfile("c:aggiornafile2")
non capisco perchè in esecuzione il file2 non cambia in pippo.exe
scusami ma non ho capito cosa volevi dire
una cosa...ma non credi che sarebbe il caso di passare a visual basic? ..per le cose che intendi fare è decisamente più completo..
di Angelus (utente non iscritto) data: 09/02/2011
Ciao mik io volevo far passare con la text2.text il completamento del file visto che cambia sempre
es. text2.text = pippo.exe
file2 = text2.text
set file = fso.getfile("c:aggiornafile2")
non capisco perchè in esecuzione il file2 non cambia in pippo.exe
scusami ma non ho capito cosa volevi dire
una cosa...ma non credi che sarebbe il caso di passare a visual basic? ..per le cose che intendi fare è decisamente più completo..
di Mik (utente non iscritto) data: 09/02/2011
Adesso si..file2 è una variabile e non va messa dentro gli apici.
così:
ps.: i tuoi progetti pare utizzino solo oggetti forms...
secondo me a sto punto (se hai possibità) meglio utilizzare visual basic 2010 che offre parecchie risorse in piu rispetto al vba di office.!
set file = fso.getfile("c:aggiorna"+file2) |
Vuoi Approfondire?