AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Escape Sequenzen

Ein Thema von A.Griffin · begonnen am 10. Nov 2017 · letzter Beitrag vom 14. Nov 2017
Antwort Antwort
Seite 1 von 2  1 2      
A.Griffin

Registriert seit: 17. Feb 2017
94 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Delphi Escape Sequenzen

  Alt 10. Nov 2017, 15:43
Hallo zusammen,


wie schreibe ich Escape Sequenzen in einen String? In meinem konkreten Fall muss ich einen String erstellen der die Escape Sequenze "ESC-L" enthält. Ich brauche das um über Netzwerk mit einem KBS Pick-by-light System zu kommunizieren.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Delphi Escape Sequenzen

  Alt 10. Nov 2017, 16:11
ESC ist 0x33.
Siehe z.B. http://www.asciitable.com/

meinString := #33 + 'L' + einAndererString;
  Mit Zitat antworten Zitat
Benutzerbild von timog
timog

Registriert seit: 26. Sep 2006
Ort: Landkreis Oldenburg (Oldb)
117 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Delphi Escape Sequenzen

  Alt 10. Nov 2017, 16:16
Schon mal mit #27+'L' probiert? (ESC sollte 27 in ASCII sein).

Oder vielleicht so tun, als sei es ein Drucker und dann mit der Windows Escape oder ExtEscape arbeiten? http://www.delphipraxis.net/23387-da...er-senden.html
Timo
Real Programmers are surprised when the odometers in their cars don't turn from 99999 to 9999A.

Geändert von timog (10. Nov 2017 um 16:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi Escape Sequenzen

  Alt 10. Nov 2017, 19:46
MSDN-Library durchsuchenVK_ESCAPE

Zwischen zwei StringKonstanten kann man das + weglassen.
(bei zwei kollidierenden ' müssen sie dann entfallen)

Delphi-Quellcode:
#27'L'
#27 + 'L'  // Dezimal
#$1B + 'L'  // Hexadezimal
Char(VK_ESCAPE) + 'L'  // Konstante

Und natürlich als String den AnsiString verwenden und nicht den "String".
Ab Delphi 2009 ist der String ein UnicodeString und es gibt Spaß mit Konvertierungen der Chars. (CodePage)
Natülich kann man auch besser gleich den Delphi-Referenz durchsuchenRawByteString (ab 2009) oder vielleicht besser ein TBytes verwenden, wenn es um Steuersequenzen und nicht um "Texte" geht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (10. Nov 2017 um 19:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Delphi Escape Sequenzen

  Alt 10. Nov 2017, 21:32
Steinigt ihn! er hat C gedacht!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Delphi Escape Sequenzen

  Alt 11. Nov 2017, 09:31
Steinigt ihn! er hat C gedacht!

Gruß
K-H
Nicht mal gedacht. Ich glaube, er hat einfach Oct übersehen und dachte, es wäre Dec. #27 oder Char($1B) sind richtig. 033 ist Achtersystem, das kann Delphi nicht.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi Escape Sequenzen

  Alt 11. Nov 2017, 14:17
Binär kann es auch nicht
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
A.Griffin

Registriert seit: 17. Feb 2017
94 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Delphi Escape Sequenzen

  Alt 13. Nov 2017, 08:07
Ich nutze für das Project XE7. Ich habe #27 + 'L' schon probiert aber nur mit "string", hätte gedacht, dass writeln das richtig konvertiert. Ich probiere es später mit Ansistring.

*edit*

Wenn ich IOHandler.WriteLn(MeinString, IndyTextEncodingASCII) nutze, wird es dann richtg konvertiert, wenn ich "String" nutze?

*edit2*

OK so wie es in meinem *edit* steht geht es jetzt. Hatte gar nicht gedacht, dass das Encoding nicht richtig ist.

Geändert von A.Griffin (13. Nov 2017 um 10:03 Uhr)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Delphi Escape Sequenzen

  Alt 13. Nov 2017, 10:58
Indy macht leider viel Unsinn mit Zeichen oberhalb von 127. Daher ist IndyTextEncodingASCII zu vermeiden. Grundsätzlich bietet es sich an, die Sachen mit AnsiString oder RawByteString zu machen, aber da WriteLn ja für Text ist, ist der genaue Typ hier egal. Delphi wandelt das um.

Man könnte auch einen DeinString: RawByteString nehmen, um Absatzzeichen ergänzen und diesen dann mit
IOHandler.Write(TBytes(DeinString)) oder
IOHandler.WriteBuffer(DeinString[1], Length(DeinString)) senden.
Janni
2005 PE, 2009 PA, XE2 PA

Geändert von Redeemer (13. Nov 2017 um 11:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi Escape Sequenzen

  Alt 13. Nov 2017, 11:33
Indy macht leider viel Unsinn mit Zeichen oberhalb von 127.
Darum der letzte Absatz in meinem ersten Post.

String:
Der Compiler konvertiert eventuell die CodePage (QuellCode > Unicode in Binary)
und dann zur Laufzeit nochmal, abhängig von den Einstellungen des aktuellen Systems (Unicode > ANSI des Windows/Users).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:09 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