Autor Beitrag
HellAngel28
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Fr 26.09.03 03:05 
hiya.. ich schreibe gerade nen IRC Bot.. jetz hat er aber ein problem.. aber ich weiss nich welches ^^


ausblenden Quelltext
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:
procedure TMainForm.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var rec:string;
var recs:array[0..99] of string;
var recn:longint;
begin
        rec := socket.ReceiveText ;
        Temp.Lines.Add(rec);
        //Ping Pong
        if (copy(rec,0,4) = 'PING') then
        begin
                Client.Socket.sendtext('Pong' + copy(rec,5,99) + #13#10);

        end;
        //Ping Pong End

        //Unterteile Rec
        recn := 1;
        while (rec <> '') do
        begin
        recs[recn] := copy(rec,0,ansipos(' ',rec));
        recn := recn + 1;
        Temp4.Lines.Add('"' + recs[recn] + '"');
        Delete(rec,0,length(recs[recn]));
        end;
end;


wenn ich connecten will, kommt dieser error:
'Access violation at address 00402919 in module 'Project1.exe'.

es muss irgendwie an dem //Unterteile Rec liegen... (wenn ich es in kommentar setze, funst es nämlich)

thx 4 help
focus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 187

XP, 2k, 98, Me
D6 Prof
BeitragVerfasst: Fr 26.09.03 08:58 
versuche die grösse von rec einfach mal auf 1000 zu setzen... wenn das den fehler behebt würde ich auf den string tippen in den du deine daten kopierst..desweiteren könntest du auch einfach mit pos anstelle copy(rec,0,4) nach dem teilstring fragen ausserdem hätte ich anstelle der while schleife eine for schleife genommen, da du ja die länge von rec kennst (length())
gruss
michael


so in etwa
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm4.ClientSocket1Read(Sender: TObject;
                   Socket: TCustomWinSocket);
var
  rec : string;
  recs: array[0..99of string;
  i: integer;
begin
  rec := socket.ReceiveText ;
  Temp.Lines.Add(rec);

  {Ping Pong}
  if(pos('PING', rec)>0then
    Client.Socket.sendtext('Pong' + copy(rec,5,99) + #13#10);

  {Unterteile Rec}
  for i:=1 to length(rec)do
  begin
    recs[i] := copy(rec,0,ansipos(' ',rec));
    Temp4.Lines.Add('"' + recs[i+1] + '"');
    Delete(rec,0,length(recs[i+1]));
  end;
end;