AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

einString.equals regiert nicht auf Vergleich

Ein Thema von EinsteinXXL · begonnen am 22. Aug 2015 · letzter Beitrag vom 23. Aug 2015
Antwort Antwort
EinsteinXXL

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

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
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: einString.equals regiert nicht auf Vergleich

  Alt 23. Aug 2015, 17:39
Das du bei Delphi-Referenz durchsuchenstring.Split noch einen Parameter angeben kannst, wo leere Strings einfach unterdrückt werden, weißt du?

Delphi-Referenz durchsuchenTStringSplitOptions
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz