Newsgroup: it.comp.lang.visual-basic
Titolo: Redirigere l'output degli immediata su file txt

Buongiorno a tutti.
Leggendo il post "Controllo timer. può "perdere un colpo?"" mi è venuto 
in mente una banalità per risolvere un piccolo problema che abbiamo su 
alcuni pc in azienda, che spesso si trovano spenti quando non dovrebbero 
esserlo. Essendo un giovincello in fatto di VB, ci sto impiegando un po' 
a risolvere la questione. Per ora le poche righe di codice che ho 
riadattato mandano sulla finestra "Immediata" l'orario e la data del 
sistema ogni 2 minuti. Ora mi serve redirigere tutto quello che passa su 
questa finestra in un file di testo.
Il fatto è che deve registrare anche gli eventi associati ad un click su 
un pulsante; qualcosa del tipo:
Private Sub Form_Load()
     Open App.Path & "\FileLog.txt" For Output As #1
     Write #1,	'Lo so per ora non scrive niente, ma il fatto è che 
non 			'so cosa metterci
     Close #1
End Sub
Private Sub Timer_Timer()
     Debug.Print Format(Now, "HH:NN:SS")
End Sub
Private Sub Command1_Click()
     ' Questo pulsante blocca la registrazione nel file di Log
     Timer.Interval = 0
     Timer.Enabled = False
     Debug.Print "<----------- Fine registrazione ------------->"
     Debug.Print "<----------- " & Format(Date, "DD/MM/YYYY") & " - "; 
Format(Now, "HH:NN:SS") & " ----------->"
End Sub
Private Sub Command2_Click()
     ' Questo pulsante riavvia la registrazione del file di Log
     RegistraLog
End Sub
Private Sub Command3_Click()
     ' Questo pulsante chiude il form
     Unload Me
End Sub
Private Function RegistraLog()
     Dim i As Long
     Dim a As Integer
     Debug.Print "<---------- Inizio registrazione ------------>"
     Debug.Print "<---------- " & Format(Date, "DD/MM/YYYY") & " - "; 
Format(Now, "HH:NN:SS") & " ------------>"
     DoEvents
End Function
Come posso fare a mandare il contenuto dell'Immediata sul file di testo.
Grazie per i suggerimenti ed eventuali link
Fabrizio

 Fabrizio
sostituendo i debug.print?(un po' "alla femminile", ma prova..."
-- 
Emanuele Torrenti

Manuel T wrote:

Ehm... si...
Il mio problema non è scrivere qualcosa nel file di testo, quello lo 
faccio con Write... il problema è mandare quella maledetta finestra su 
file... Dovrei sostituire Debug.Print con cosa?
Lo so che faccio la figura da ignorante, ma vi giuro che ho cercato e 
ricercato prima di chiedere...
Sorry
Fabrizio

 Fabrizio
Tieni il file aperto con un handle noto, tipo una variabile integer 
globale, e sostituisci
debug.print
con:
print #handle, messaggioWarning
Write toglilo, non ti serve.
-- 
Emanuele Torrenti

 quello che passa su questa finestra in un file di testo.
Io uso questa funzioncina:
ti basta adattarlo alle tue necessità e sostituire i vari "debug.print 
qualcosa" con "WriteToLog qualcosa"
Public Sub WriteToLog(ByVal strData As String)
    '--- Scrivo nel log solo se l'apposito
    '--- flag nel file di configurazione è impostato
    If Not GV.LogOnFile Then Exit Sub
    Dim intFileHandle As Integer
    intFileHandle = FreeFile()
    '--- il file di log è giornaliero
    Open GV.DirectoryLog & GetDateText() & "_log.txt" For Append As 
#intFileHandle
    Print #intFileHandle, Now() & " - " & strData
    Close #intFileHandle
End Sub
Ciao!
-- 
Gianluca Cannalire
Microsoft MVP/MCP - Visual Basic
http://www.visual-basic.it
http://community.visual-basic.it/gianluca