Private Sub TCalcBandwidth_Timer()
Dim InOctets As Long
Dim OutOctets As Long
Dim i As Integer
Dim Binary As String
Dim BinarySplit() As String
Dim BinarySplitSplit() As String
GetNetStats InOctets, OutOctets
If Received <> 0 And Sent <> 0 Then
LDownload.Caption = Replace(Settings.Load("TDownloadFormat"), "%u", InOctets - Received)
LUpload.Caption = Replace(Settings.Load("TUploadFormat"), "%u", OutOctets - Sent)
If Len(Dir(App.Path & "\db\", vbDirectory)) = 0 Then
MkDir App.Path & "\db\"
End If
i = FreeFile
Open App.Path & "\db\Current" For Output As i
Print i, (InOctets - Received) & Chr(2) & (OutOctets - Sent)
Close i
If HistoryCount = UBound(History) Then
For i = 1 To UBound(History)
History(i - 1) = History(i)
Next
Else
HistoryCount = HistoryCount + 1
End If
History(HistoryCount) = (InOctets - Received) & Chr(2) & (OutOctets - Sent)
i = FreeFile
Open App.Path & "\db\History" For Output As i
Print i, Join(History, Chr(1))
Close i
If Len(Dir(App.Path & "\db\" & Year(Date), vbDirectory)) = 0 Then
MkDir App.Path & "\db\" & Year(Date)
End If
Binary = ReadFile(App.Path & "\db\" & Year(Date) & "\" & StringMonth)
If InStr(Binary, Day(Date)) = 0 Then
Binary = IIf(Len(Binary) > 0, Binary & Chr(1), "") & Day(Date) & Chr(2) & (InOctets - Received) & Chr(2) & (OutOctets - Sent)
Else
BinarySplit = Split(Binary, Chr(1))
For i = 0 To UBound(BinarySplit)
BinarySplitSplit = Split(BinarySplit(i), Chr(2))
If BinarySplitSplit(0) = Day(Date) Then
BinarySplitSplit(1) = Int(BinarySplitSplit(1)) + (InOctets - Received)
BinarySplitSplit(2) = Int(BinarySplitSplit(2)) + (OutOctets - Sent)
BinarySplit(i) = Join(BinarySplitSplit, Chr(2))
End If
Next
Binary = Join(BinarySplit, Chr(1))
End If
i = FreeFile
Open App.Path & "\db\" & Year(Date) & "\" & StringMonth For Binary As i
Put i, , Binary
Close i
End If
Received = InOctets
Sent = OutOctets
End Sub