AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi INDY10 IRC ASCII Zeichen ersetzen
Thema durchsuchen
Ansicht
Themen-Optionen

INDY10 IRC ASCII Zeichen ersetzen

Ein Thema von Black-Rider · begonnen am 19. Mär 2008 · letzter Beitrag vom 20. Mär 2008
Antwort Antwort
Black-Rider

Registriert seit: 8. Okt 2007
Ort: Diekholzen
18 Beiträge
 
Delphi 7 Professional
 
#1

INDY10 IRC ASCII Zeichen ersetzen

  Alt 19. Mär 2008, 19:52
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:
$txc = preg_replace('/('.chr(3).'(([0-1][0-5]|[0-9])\,([0-1][0-5]|[0-9])|([0-1][0-5]|[0-9]))|'.chr(3).'|'.chr(2).'|'.chr(22).'|'.chr(9).')/',"", $tx);
Und ich hab diesen PHP Code soweit in Delphi "umgeformet":
Delphi-Quellcode:
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;
Das Programm lässt sich starten nur wird leider nix ersetzt!

MFG
Black-Rider
Give never up^^
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: INDY10 IRC ASCII Zeichen ersetzen

  Alt 20. Mär 2008, 14:35
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:
 '/('#3'(([0-1][0-5]|[0-9])\,([0-1][0-5]|[0-9])|([0-1][0-5]|[0-9]))|'#3'|'#2'|'#22'|'#9')/'
Oder du verwendest gleich die regex Notation \xnn.

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
  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 19:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz