1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| Option Explicit
'-------------------------------------------
Function jma(TheDate)
Dim amj
amj = Split(TheDate, "/", -1, vbTextCompare)
jma = amj(2) & "/" & amj(1) & "/" & amj(0)
End Function
'-------------------------------------------
Function InterLatence(Date1, Date2)
Dim seconds, minutes, hours
If (isDate(Date1) And IsDate(Date2)) = false Then
InterLatence = "00:00:00"
Exit Function
End If
seconds = Abs(DateDiff("S", Date1, Date2))
minutes = seconds \ 60
hours = minutes \ 60
minutes = minutes mod 60
seconds = seconds mod 60
if len(hours) = 1 then hours = "0" & hours
InterLatence = hours & ":" & _
Right("00" & minutes, 2) & ":" & _
Right("00" & seconds, 2)
End Function'-------------------------------------------
Dim fso, fichier
Dim BaliseDebut, BaliseFin
Dim DebutOu, FinOu
Dim TblChapitre, TblLgn, Recup, T
Dim chaine
Dim OldTemps, DerTemps, EcartTempo
Set fso = CreateObject("Scripting.FileSystemObject")
Set fichier = fso.opentextfile("C:\PersoFrancis\En VBScript et HTA\Extraction chaine de caractère entre deux balises\latence.log", 1)
TblChapitre = Split(fichier.ReadAll, "==============END==============", -1, vbTextCompare)
fichier.Close
Set fichier = Nothing
BaliseDebut = "Maximum = "
BaliseFin = ", Moyenne"
For T = 0 To UBound(TblChapitre) - 1
DebutOu = InStr(1, TblChapitre(T), BaliseDebut)
If DebutOu <> 0 Then ' DebutOu a été trouvé
DebutOu = DebutOu + Len(BaliseDebut)
FinOu = DebutOu
FinOu = InStr(FinOu, TblChapitre(T), BaliseFin)
Recup = Mid(TblChapitre(T), DebutOu, (FinOu - 2) - DebutOu) 'récupération du chiffre (tempo Maximum) pour ce Ping
If Recup >= 100 Then
TblLgn = Split(TblChapitre(T), vbNewLine, -1, vbTextCompare) ' découpe en un tableau de chaque ligne du chapitre d'1 Ping
If chaine = "" Then OldTemps = TblLgn(2)
DerTemps = TblLgn(2)
If InStr(OldTemps, ",") Then OldTemps = Left(OldTemps, Len(OldTemps) - 3)
If InStr(DerTemps, ",") Then DerTemps = Left(DerTemps, Len(DerTemps) - 3)
EcartTempo = InterLatence(OldTemps, DerTemps)
OldTemps = DerTemps
If chaine <> "" Then chaine = chaine & vbNewLine & "----------- " & EcartTempo & " -----------" & vbNewLine
chaine = chaine & TblLgn(2) & vbNewLine & _
TblLgn(16) & vbNewLine & _
TblLgn(17) & vbNewLine & _
TblLgn(19)
End If
End If
Next
If chaine = "" then chaine = "Aucun dépassement maxi de plus de 100ms"
Set fichier = fso.CreateTextFile("C:\PersoFrancis\En VBScript et HTA\Extraction chaine de caractère entre deux balises\rapport.txt",True)
fichier.write chaine
fichier.Close
Set fichier = Nothing
Set fso = Nothing
MsgBox "Fait" |