Private Sub sckIRC_DataArrival(ByVal bytesTotal As Long)
sckIRC.GetData tmpdata ' Get data from the socket
colRawQueue.Add tmpdata
End Sub
Private Sub ParseTim_Timer()
If colRawQueue.Count > 0 Then ' If there are raw lines in queue
CheckForLine colRawQueue(1) ' Feed it though fuction
colRawQueue.Remove 1 ' Remove it from queue
End If
If colParseQueue.Count > 0 Then ' If there are any lines to parse in queue
Parse colParseQueue(1) ' Parse them
colParseQueue.Remove 1 ' Remove from queue
End If
End Sub
Public Sub CheckForLine(strLine As String)
Dim intCounter As Integer ' Dim Some Stuff
Dim strOneLine As String
Static strRestLine As String
strLine = strRestLine & strLine
For intCounter = 1 To Len(strLine) ' Loop through for every character
If Mid(strLine, intCounter, 1) = Chr(13) Or Mid(strLine, intCounter, 1) = Chr(10) Then 'If there is a cr or lf
strOneLine = Mid(strLine, 1, intCounter - 1)
strOneLine = Replace(strOneLine, Chr(10), "")
strOneLine = Replace(strOneLine, Chr(13), "")
If Trim(strOneLine) <> "" Then
colParseQueue.Add strOneLine
End If
strLine = Mid$(strLine, intCounter + 1)
intCounter = 0
End If
Next intCounter
strRestLine = strLine
End Sub