Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#26

Re: Users online in einem Chat

  Alt 4. Jul 2004, 15:17
Zuerst musst du mal einige Konstanten definieren:
Delphi-Quellcode:
const
  cFinish = #1;
  Kommando_1 = 'KOMM1';
  Kommando_2 = 'KOMM2';
  MaxArguments = 25;
Diese Konstante brauchst du noch. Bedenke dass du die Konstanten für Befehle beliebig erweitern kannst, diese aber im Server und im Client gleich sein müssen (falls du es getrennt hast).

So werden die Befehle zusammengesetzt:
Socket.SendText(Kommando_1+cFinish+'Param_1'+cFinish´'Param_2'+cFinish); Hier musst du beachten, dass jeder Befehl mit cFinish abgeschlossen werden muss. Zweitens muss zwischen allen Parametern und dem Befehl ein cFinish stehen. Aufgrund dieses Zeichens wird der Text wieder getrennt.

Das ist die Prozedur zum Aufspalten eines Zusammengesetzten Befehls.
Delphi-Quellcode:
var
  Arguments: array[1..MaxArguments] of String;
  Command: String;
  i: Integer;
  NumArguments: Integer;
begin
  Data := Socket.ReceiveText;
  Command := Copy(Data,1,Pos(cFinish,Data)-1);
  Delete(Data,1,Pos(cFinish,Data));
  NumArguments := 0;
  while Length(Data) > 0 do
  begin
    Inc(NumArguments);
    Arguments[NumArguments] := Copy(Data,1,Pos(cFinish,Data)-1);
    Delete(Data,1,Pos(cFinish,Data));
  end;
end;
Das Codesegment musst du dir unter Umständen noch bearbeiten. In Command wird am Ende dann das Kommando (also der erste Parameter) drinstehen, Arguments[i] enthält den jeweiligen Parameter, und NumArguments die Anzahl Parameter. Du kannst den Code auch so umbauen, dass er mit dynamischen Arrays und nicht der vordefinierten Höchstanzahl funktioniert. Wie gesagt, der Code ist noch uneffizient, ich habe lange nicht mehr am Chat gearbeitet. Weiters könnte man es auch einfacher aufspalten, such dazu mal im Forum nach DelimitedText.
Ich hoffe dass dir diese Codefragmente weiterhelfen, ich hoffe du weißt auch wo du sie einbauen musst.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat