Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    46

    monitoraggio continuo variazione file di testo

    Ciao a tutti !!!

    Come posso fare a monitorare quando un file di testo varia... ho provato con una lettura continua del file tramite un ciclo while... ma praticamente cosi faccio lavorare la cpu al 99%...

    Sostanzialmente ho un file di testo dove di default contiene il valore "0"

    un altro programma va a sovrascrivere nello stesso file di testo "1"

    a questo punto il mio visual basic dovrebbe intervenire per lanciare un'applicazione esterna...

    è un pò contorto come passaggio ma purtroppio sto lavorando con un lingiuaggio propietario che mi permette solo la scrittura su file di testo... quindi volendo io lanciare un'applicazione da tale programma mi appoggio a visual basic...

    grazie per la collaborazione

    Daniel79
    ieri che diventa oggi, non ritornerà domani....

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non entro nel merito della tua necessita' e della soluzione che hai scelto ma per risolvere puoi utilizzare gli strumenti di notifica delle variazioni del file system di Windows (una serie di API e metodologie che si possono usare anche in VB).

    Non ho sottomano del codice ma lo trovi facilmente se cerchi le API

    FindFirstChangeNotification
    FindNextChangeNotification
    FindCloseChangeNotification

    e cosi' via ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    46
    grazie... ci darò un'occhiata...
    ieri che diventa oggi, non ritornerà domani....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    46
    Ciao Oregon,

    ho dato un'occhiata alle api...

    Quella che dovrebbe fare al caso mio è la seguente

    Declare Function FindNextChangeNotification Lib "kernel32" Alias "FindNextChangeNotification" (ByVal hChangeHandle As Long) As Long


    Il problema è che sono un novizio delle api...come faccio ad utilizzarla....

    sapresti indicarmi qualche esempio o darmi qualche indicazione su dove reperire delle informazioni???

    grazie

    Daniel79
    ieri che diventa oggi, non ritornerà domani....

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In realta' quelle API (e altre) vanno utilizzate insieme ...

    Esistono dei progetti su Internet ... dovrei fare una ricerca ... tu l'hai fatta?

  6. #6

    Re: monitoraggio continuo variazione file di testo

    Originariamente inviato da Daniel79
    Ciao a tutti !!!

    Come posso fare a monitorare quando un file di testo varia... ho provato con una lettura continua del file tramite un ciclo while... ma praticamente cosi faccio lavorare la cpu al 99%...

    Sostanzialmente ho un file di testo dove di default contiene il valore "0"

    un altro programma va a sovrascrivere nello stesso file di testo "1"

    a questo punto il mio visual basic dovrebbe intervenire per lanciare un'applicazione esterna...

    è un pò contorto come passaggio ma purtroppio sto lavorando con un lingiuaggio propietario che mi permette solo la scrittura su file di testo... quindi volendo io lanciare un'applicazione da tale programma mi appoggio a visual basic...
    Effettivamente come soluzione e' un po'....invadente !

    Pero', se non vuoi la complicazione delle API, potresti evitare di impegnare continuamente la CPU mettendo un Timer, e controllando il file ad es. ogni 3-4 secondi, a seconda dell'esigenza....
    IceCube_HT (VB6 fan Club)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    46
    si l'ho fatta...

    questo è quello che ho trovato..

    Private Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4
    Private Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2
    Private Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1
    Private Const FILE_NOTIFY_CHANGE_SIZE = &H8
    Private Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10
    Private Const FILE_NOTIFY_CHANGE_SECURITY = &H100
    Private Const FILE_NOTIFY_CHANGE_ALL = &H4 Or &H2 Or &H1 Or &H8 Or &H10 Or &H100
    Private Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long
    Private Declare Function FindCloseChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
    Private Declare Function FindNextChangeNotification Lib "kernel32" (ByVal hChangeHandle As Long) As Long
    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function ResetEvent Lib "kernel32" (ByVal hEvent As Long) As Long

    Private Sub Form_Load()

    Dim Ret As Long

    Ret = FindFirstChangeNotification("c:\prova.txt", &HFFFFFFFF, FILE_NOTIFY_CHANGE_ALL)

    WaitForSingleObject Ret, &HFFFFFFFF

    MsgBox "Event Triggered for the first time"

    FindNextChangeNotification Ret

    End Sub

    Quando lo mando in esecuzione però si impalla tutto....
    ieri che diventa oggi, non ritornerà domani....

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    La cosa e' un po' piu' complessa ...

    Si fa il monitoring di una cartella (infatti l'esempio originale usava C:\ ... il nome del file lo hai aggiunto tu ...) ... in modo che si controlli se avviene "qualcosa" in quella cartella ...

    Se avviene, allora si identifica l'oggetto cambiato.

    Se vuoi vedere un esempio, in VB, scarica questo

    http://www.mvps.org/vbvision/_sample..._Help_Demo.zip

  9. #9

    Re: monitoraggio continuo variazione file di testo

    Originariamente inviato da Daniel79
    sto lavorando con un lingiuaggio propietario che mi permette solo la scrittura su file di testo... quindi volendo io lanciare un'applicazione da tale programma mi appoggio a visual basic...
    Che linguaggio proprietario è? Magari si riesce a trovare una soluzione un po' più efficiente...
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.