|
| Autor |
Nachricht |
sollniss_ Coder

Anmeldedatum: 08.09.2007 Beiträge: 212
|
for schleife in data arrivel unterbrechen
Verfasst am: 18.01.2008, 16:13 |
|
|
hab folgenden code, der zwar net funzt aber mein prob ziemlich gut beschreibt:
| Code: |
Private Sub ws_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
' incoming
Dim strDaten As String
Dim strSpamArr() As String
Dim i As Integer
Dim Rand As String
ws.GetData strDaten, vbString
DoEvents
If InStr(strDaten, "!spam +") <> 0 Then
strSpamArr = Split(strDaten, "+")
For i = 1 To strSpamArr(1)
' !stop
If InStr(strDaten, "!stop") <> 0 Then
Exit Sub
Else
Randomize
Rand = Rnd * 1000 + Rnd
ws.SendData "PRIVMSG " & strChannel & " : " & Rand & vbCrLf
End If
Next i
End Sub |
die nachichten werden einfach weiter gesendet, er ignoriert !stop http://sollniss.1x.to/
 |
|
| |
|
 |
The-God-of-all_ Poster

Anmeldedatum: 20.05.2007 Beiträge: 170 Wohnort: App.Path
|
Verfasst am: 18.01.2008, 17:04 |
|
|
Ich habe den Code mal so umgeschrieben das er funktionieren sollte. Ich habe dazu eine Auswertung mit Select Case und Split gemacht. Wenn man !spam 10 an den Server sendet dann fängt er an die Schleife 10 mal zu durchlaufen. Wenn während des durchlaufens der Schleife !stop gesendet wird dann wird die Schleife abgebrochen. Ich weiß nicht was du machen willst, aber ich vermute das es sinnvoller wäre einen Timer anstelle einer Schleife zu nehmen.
| Code: | Private Sub ws_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim Buffer As String
Dim Attributs() As String
Static Cancel As Boolean
Dim i As Integer
ws.GetData Buffer, vbString
Attributs = Split(Buffer, " ")
Select Case Attributs(0)
Case "!spam"
Cancel = False
For i = 0 To Int(Attributs(1))
'Code für Spam
DoEvents
If Cancel = True Then Exit For
Next
Case "!stop"
Cancel = True
End Select
End Sub |
|
|
| |
|
 |
sollniss_ Coder

Anmeldedatum: 08.09.2007 Beiträge: 212
|
Verfasst am: 18.01.2008, 17:26 |
|
|
hm ja ich kommuniziere mit nem irc server, und da sind im buffer keine leerzeichen, also isses schwer das command rauszufiltern http://sollniss.1x.to/
 |
|
| |
|
 |
The-God-of-all_ Poster

Anmeldedatum: 20.05.2007 Beiträge: 170 Wohnort: App.Path
|
Verfasst am: 18.01.2008, 17:43 |
|
|
Eigentlich müsste das auch gehen, weil IRC Messages können Leerzeichen enthalten und wenn man die richtig splittet sollte man an die ganze Nachricht dran kommen. Aber man kann das ganze auch mit Instr machen.
| Code: | Private Sub ws_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim Buffer As String
Dim Attribut As String
Static Cancel As Boolean
Dim i As Integer
ws.GetData Buffer, vbString
Attributs = Split(Buffer, " ")
If InStr(1, Buffer, "!spam +") > 0 Then
Cancel = False
Attribut = Mid$(Buffer, InStr(1, Buffer, "!spam +") + 7)
For i = 0 To Int(Attribut)
'Code für Spam
DoEvents
If Cancel = True Then Exit For
Next
ElseIf InStr(0, Buffer, "!stop") > 0 Then
Cancel = True
End If
End Sub |
|
|
| |
|
 |
sollniss_ Coder

Anmeldedatum: 08.09.2007 Beiträge: 212
|
Verfasst am: 18.01.2008, 18:37 |
|
|
habs jetz doch mit nem timer gemacht (mit der hilfe von ringwrath-4), trotzdem thx^^ http://sollniss.1x.to/
 |
|
| |
|
 |
|
|