Thema: Delphi Befehle erstellen

Einzelnen Beitrag anzeigen

Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#15

Re: Befehle erstellen

  Alt 27. Dez 2007, 21:13
Zitat von DeddyH:
Schau Dir mal PosEx an.
genau ... also pass auf (ich hoffe, dass du dir auch fein selber Gedanken machst, weil du weißt ja, wie das hier läuft)

bisheriger Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
befehl, user, s, reason: string;
begin
S :='/kick k4ni weil er zu viel fragen stellt =)';
if s[1] = '/then // Prüfen, ob Befehl!
  begin
    befehl := Copy(s, 2, Pos(' ', s) - 2); //Copy will als dritten Parameter keine zweite STELLE, sondern die ANZAHL der Zeichen! Also ist es ja logisch, dass man eine '2' braucht...
    if befehl = 'kickthen
      begin
      user := Copy(s, Pos(' ', s) + 1, Pos(' ', s) - 2); // hier dasselbe nur nicht mit '2' sondern mit was anderem, weil ja der 'kick' befehl schon mit drin ist
      reason := Copy(s, Pos(user, s) + 1 + Length(user), Length(s));
      end;
  end;
  ShowMessage(user+' wurde gekickt, reason: '+reason);
end;
jetziger code:
Delphi-Quellcode:
uses StrUtils;
...
procedure TForm1.Button1Click(Sender: TObject);
var
befehl, user, s, reason: string;
begin
S :=edit1.text;
if s[1] = '/then
  begin
    befehl := Copy(s, 2, Pos(' ', s) - 2);
    if befehl = 'kickthen
      begin
      user := Copy(s, 7, PosEx(' ', s, 7) - 7); //bei PosEx (unit-einbinden nicht vergessen) kann man nun den startwert zum suchen mit eingeben: '7' weil dort das erste zeichen nach dem leerzeichen hinter kick kommt, damit kann man denke ich hier arbeiten, weil ja schon feststeht, dass 'kick' der befehl ist, ansonsten müsste man dynamisch rangehen =)
      reason := Copy(s, PosEx(' ', s, 7) + 1, Length(s));
      end;
  end;
  ShowMessage(user+'#'+reason);
end;
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat