Aan de hand van:
[topic=366476/1/25]
met deze quote wou ik even verder gaan:
[topic=366476/1/25]
met deze quote wou ik even verder gaan:
Een aan de hand van deze quote baseer ik m'n probleem:Hmm ik heb me niet zo verdiept in Delphi, maar het idee is dat je erachter komt hoe lang de string is die je terugkrijgt (met VB is dat Len(string). En dat je de string van achteren naar voren met een 'for-loopje' gaat parsen. Als je met dat for-loopje een Chr(0) tegenkomt (dit is in VB een null-character) weet je dat het stukje info na dat character begint.
In VB kan je dan met de functie Mid(string,start,length) het stukje string eruit halen.
string = de string die je terugkrijgt van de server
start = (de positie waar het for loopje de chr(0) heeft gevonden) + 1
length = deze kan je weglaten omdat de functie toch niet verder kijkt dan het volgende null-character.
Ik heb nu hetzelfde, en lang leve Gathering, ik zit met hetzelfde probleem... met de bovenste quote kan ik niet veel, omdat ik daar niet echt gespecialiseerd in ben. Alleen wat basic shit enzo. Maar kan iemand mij nou eens een constructie geven AAN DE HAND VAN BOVENSTAANDE QUOTE hoe ik dit loopje nou in elkaar moet zetten? Hoe ik dus kan achterhalen wanneer de spatie is gegeven.Op dinsdag 01 januari 2002 22:13 schreef Stoel het volgende:
ik heb dit:
code:
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 63procedure TForm1.Button1Click(Sender: TObject); var MyStream: TMemoryStream; TmpStr: String; command:string; Begin NMUDP1.ReportLevel := Status_Basic; NMUDP1.RemoteHost := Edit1.Text; NMUDP1.RemotePort := StrToInt(Edit2.Text); command := edit3.text+#13#10; TmpStr := command; MyStream := TMemoryStream.Create; try MyStream.Write(TmpStr[1], Length(command)); NMUDP1.SendStream(MyStream); finally MyStream.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Clear; end; procedure TForm1.NMUDP1Status(Sender: TComponent; status: String); begin If StatusBar1 <> nil then StatusBar1.SimpleText := status; end; procedure TForm1.NMUDP1DataSend(Sender: TObject); begin StatusBar1.SimpleText := 'Data Sent'; end; procedure TForm1.NMUDP1InvalidHost(var handled: Boolean); var TmpStr: String; begin If InputQuery('Invalid Host!', 'Specify a new host:', TmpStr) then Begin NMUDP1.RemoteHost := TmpStr; Handled := TRUE; End; end; procedure TForm1.NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer; FromIP: String; Port: Integer); var MyStream: TMemoryStream; TmpStr: String; begin MyStream := TMemoryStream.Create; try NMUDP1.ReadStream(MyStream); SetLength(TmpStr,NumberBytes); MyStream.Read(TmpStr[1],NumberBytes); Memo1.Lines.Add(TmpStr); finally MyStream.Free; end; end;
Nu geef ik het commando:
ÿÿÿÿdetails
Maar nu krijg ik alleen : ÿÿÿÿm213.239.57.46:27045 terug!!
De rest blijft ergens achter!!
Want ik moet nog de servername krijgen en mod type, os, enz enz!!
Hoe krijg ik dit nu voor elkaar??
Please help me, ik moet graag een goede documantatie van het cs protocol hebben,