Einzelnen Beitrag anzeigen

EinsteinXXL

Registriert seit: 18. Aug 2015
8 Beiträge
 
#6

AW: einString.equals regiert nicht auf Vergleich

  Alt 23. Aug 2015, 16:56
@ ringli Danke für deine Hilfe. Aber die IF else Bedingungen waren nicht das Problem, sondern nur der Versuch das eigentliche Problem zu lösen.

In der von mir als erstes geposteten Funktion habe ich ein Leerzeichen vergessen zu entfernen. Mit der Methode DEC_MS.Substring trenne ich das erste wort vom restlichen Text. Der Restliche Text den ich dann an ParseCommandlineArg übergebe enthielt am anfang noch ein Leerzeichen. Das führte in ParseCommandlineArg dazu, dass meine Split Methode eine Leeren String zurückgegeben hat. Mich wunderte es sowieso wieso Split[0] einfach leer war. Dann habe ich sozusgaen gepfuscht und mit " if COMMAND.IsEmpty" versucht das Problem an der falschen Stelle zu lösen. Die IsEmpty Prüfung kann nun wieder wegfallen und ich musste nur diese Zeile von...

Code:
procedure TForm1.IdIRC1ChannelMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: string);
....
     // - Speichere restlichen Text in dden COMMANDLINE String
      COMMANDLINE := DEC_MSG.Substring(AnsiPos(TRIGGER,DEC_MSG) + TRIGGER.Length);
...
end;
auf...
Code:
procedure TForm1.IdIRC1ChannelMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: string);
....
     // - Speichere restlichen Text in dden COMMANDLINE String
      COMMANDLINE := DEC_MSG.Substring(AnsiPos(TRIGGER,DEC_MSG) + TRIGGER.Length + 1);
...
end;
ändern. tja, manchmal ist man einfahc betriebsblind. Die ParseComandlineArgs Methode sieht jetzt wieder so aus.

Code:
procedure TForm1.ParseComandlineArgs(IdIRC1: TidIRC; ASender: TIdContext; const ANickname; APassword : PAnsiChar; const ATarget, Commandline: string);
...

  COMMAND := String(Commandline.Split([' '])[0]);
  COMMAND := AnsiUpperCase(COMMAND);
  PARAMETER := commandline.Substring(AnsiPos(COMMAND,commandline) + COMMAND.Length).ToLower;

  // - help
  if COMMAND.Equals('-HELP') then begin
      ShowHelp(APassword, ATarget);
  end;
...
end;
@ Der schöne Günther Danke für den Tip mit dem Leerzeichen.

PS: Trotzdem vielen Dank an alle welche sich für mich den Kopf zerbrochen haben bzw. so nett waren sich die Zeit für mein Problem zu nehmen.

Geändert von EinsteinXXL (23. Aug 2015 um 17:22 Uhr)
  Mit Zitat antworten Zitat