Ciao a tutti,
vengo al punto: Sto creando un piccolo tool in VB per monitorare una applicazione, in sostanza semplicemente prendo in input un file di log (formato testo) e lo carico in listbox e fino a qui tutto ok! ora ho implementato una funzione che controlla le righe della listbox e quando trova il messaggio di errore mi manda un alert per mail. Qui viene il problema allora per capire meglio vi posto la stringa di errore che dovrebbe leggere:
29/04/2014 17:12:05 ERROR (IMATweetGeneratorBean.java:253) - Error tweeting ae539b72-0f3d-4fe1-8789-a38d656f4118-6
Ora riesco a farlo funzionare se gli faccio prendere solo una parte della stringa così:
codice:
Public Sub TwitterFind()
Dim MatchFound As Boolean = False
Dim I As Integer = 0
Me.ListBox1.Refresh()
Do
If InStr(Me.ListBox1.Items(I).ToString, "ERROR", CompareMethod.Text) > 0 Then
MatchFound = True
Me.ListBox1.SelectedIndex = I
End If
I += 1
Loop Until (I >= Me.ListBox1.Items.Count) ' Or (MatchFound)
'controlla se esiste la stringa ricercata allora manda messaggio altrimenti nada
If MatchFound = True Then
Call SendEmail()
Else
MsgBox("non ce nada", MsgBoxStyle.Information, Title:="Nagios Control Center")
End If
End Sub
Quindi vede ERROR e manda la mail.. il problema è che il file di testo scorre e aggiorna continuamente la listbox e (fatto tramite timer) e mi invierebbe anche gli alert vecchi! dovrei in sostanza filtrare instr anche per data ma non funziona ad esempio ho provato così:
codice:
If InStr(Me.ListBox1.Items(I).ToString, Date.Today & " ERROR", CompareMethod.Text) > 0 Then
Ossia cercami la data odiera più la stringa.... ma c'è di mezzo l'orario!!! che credo dia problemi non posso filtrare per orario perchè ovviamente non so quando di preciso arriva l'errore.... come potrei risolvere?
grazie in anticipo