![]() |
INDY10 IRC ASCII Zeichen ersetzen
Hallo,
wenn man im IRC Farben schreibt werden die immer als ASCII ausgeben. Nun hab ich von meinem Kumpel (er hat nen IRC bot in php geschrieben) einen PHP Code, den ich eigl. bloß nach Delphi umschreiben muss, was aber leider nicht so ganz funkioniert. Der ASCII Code soll einfach weggelassen werden. Nich durch Farben ersetzt etc! Der PHP Code sieht wie folgt aus: Zitat:
Delphi-Quellcode:
Das Programm lässt sich starten nur wird leider nix ersetzt!
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String); var RegExpr: TRegExpr; begin RegExpr := TRegExpr.Create; RegExpr.Expression := ('/(#3(([0-1][0-5]|[0-9])\,([0-1][0-5]|[0-9])|([0-1][0-5]|[0-9]))|#3|#2|#22|#9)/'); RegExpr.Exec(Content); Content := RegExpr.Replace(Content, ''); Memo1.Lines.add(auser.nick + ': ' + content); end; MFG Black-Rider |
Re: INDY10 IRC ASCII Zeichen ersetzen
Hallo,
deine Expression ist keine korrekte Übersetzung der PHP RE - aber die schaut für mich auch nicht passend aus. Um Delphi Zeichen-Literale (z.B. #3) einzubringen musst du String Literale unterbrechen:
Code:
Oder du verwendest gleich die regex Notation \xnn.
'/('#3'(([0-1][0-5]|[0-9])\,([0-1][0-5]|[0-9])|([0-1][0-5]|[0-9]))|'#3'|'#2'|'#22'|'#9')/'
Statt [0-1][0-5]|[0-9] ist auch [\d]{1} möglich - der erste Ausdruck erkennt 000 bis 159, der zweite jede Zahl. Die Verwendung von Farbe in Verbindung mit IRC scheint mir nicht genormt zu sein. Die einzelnen Clients erwarten unterschiedliche Syntax, sowohl was den Introducer (^C oder ^K) betrifft, als auch die Farbkodierung (ANSI- oder CHAR-Modus). Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 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