AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String von icq-client enthält sachen wie #$D#$A oder #0
Thema durchsuchen
Ansicht
Themen-Optionen

String von icq-client enthält sachen wie #$D#$A oder #0

Ein Thema von mtin · begonnen am 2. Mai 2007 · letzter Beitrag vom 22. Jul 2007
Antwort Antwort
Benutzerbild von mtin
mtin

Registriert seit: 8. Jun 2005
34 Beiträge
 
#1

String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:24
Hallo!
ich bin gerade dabei einen kleinen icq-bot zu schreiben, einfach nur aus Spaß an der Freude

Hab dazu auch gleich die TICQLib Komponente benutzt
dabei gibts jetzt allerdings ein Problem, die Nachrichten empfange ich in der Prozedur:
procedure TForm1.icqMessageRecv(Sender: TObject; Msg, UIN: string);
als einfachen String (Msg)
Allerdings hat dieser hintendran irgendwelche komische sachen wenn ich mir den im debugger anschaue
Schreibe ich z.b. mit Trillian (meinem Standard-Client) eine Nachricht ("blub") dann erscheint im debugger
'blub'#$D#$A
und für jedes Enterzeichen noch ein eingeschobenes #$D#$A
Schreibe ich die Nachricht mit dem Online-Java-Client, so kommt nur für jedes Enterzeichen das #$D#$A und bei einer einfachen einzeiligen Nachricht einfach nur
'blub'
Bei Flash icq2go client zu guter letzt kann man gar keine enterzeichen verschicken und jede Nachricht sieht so aus
'blub'#0

wie bekomm ich die jetzt auf ein Einheitliches Format, damit ich mit copy() und pos() halbwegs ordentlich arbeiten kann? weil so wird das etwas schwierig wenn jeder client da irgendwas anderes sendet
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:28
Da beleibt Dir wohl oder übel nichts anderes übrig,
die verschiedenen Stringformatierungen der verschiedenen
Clients auf ein einheitliches Format zu bringen,
mit StringReplace z.B.

Moin
  Mit Zitat antworten Zitat
Benutzerbild von mtin
mtin

Registriert seit: 8. Jun 2005
34 Beiträge
 
#3

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:33
hmmm

naja gut wenns denn sein muss^^

aber kann ich denn bei StringReplace dann einfach #$D#$A angeben? oder '#$D#$A'? weil irgendwie sind das ja so steuerzeichen oder?

edit so wie auf dem Screenshot funktionierts ja schonmal nicht, obwohl die obere Zeile schon durchlaufen ist sieht Msg im Debuggerfenster immernoch so merkwürdig aus -.-

http://img400.imageshack.us/img400/2...benanntgv4.jpg

nochmal Edit, habs jetzt, danke euch (hab wohl StringReplace falsch benutzt^^)
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:35
Zitat von mtin:
hmmm

naja gut wenns denn sein muss^^

aber kann ich denn bei StringReplace dann einfach #$D#$A angeben? oder '#$D#$A'? weil irgendwie sind das ja so steuerzeichen oder?
Klar:
MeinString := StringReplace(MeinString,#13#10,'Was da jetzt hinsoll',[rfReplaceAll]); Moin
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:38
Da er es so anzeigt und nicht als Zeilenumbruch, sind es wohl keine Steuerzeichen
Markus Kinzler
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:41
Zitat von mkinzler:
Da er es so anzeigt und nicht als Zeilenumbruch, sind es wohl keine Steuerzeichen
Doch, er schauts sich's doch im Debugger an
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 2. Mai 2007, 15:43
Zitat:
Doch, er schauts sich's doch im Debugger an
Habe ich irgendwie Überlesen.
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

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

Re: String von icq-client enthält sachen wie #$D#$A oder #0

  Alt 22. Jul 2007, 15:56
Hallo,

ich weiß: Dieser Thread ist so tot wie TICQLib, aber der Ordnung halber:
  • StringReplace() ist eine Funktion und liefert das Ergebnis als Funktionswert zurück.
  • Der Null-Char signalisiert einen C-String und kann einfach per type cast eliminiert werden.
  • Eingeschlossene Zeilentrenner würde ich nicht entfernen.
Delphi-Quellcode:
// StringReplace() ist eine Funktion
Msg := StringReplace(Msg, 'x', 'u', [rfIgnoreCase, rfReplaceAll]);

// Null-Char im String-Buffer?
Msg := String(PChar(Msg));

// Entfernen von nicht eingeschlossenen Zeilentrennern:
Msg := Trim(Msg);
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 18:41 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