AGB  ·  Datenschutz  ·  Impressum  







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

Steuerzeichen im String

Ein Thema von Alex_ITA01 · begonnen am 28. Aug 2014 · letzter Beitrag vom 28. Aug 2014
Antwort Antwort
Seite 1 von 2  1 2      
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Steuerzeichen im String

  Alt 28. Aug 2014, 08:49
Hallo zusammen,
ich stehe grad bisschen auf dem Schlauch...

Ich möchte einen String haben, der inhaltlich so aussieht:

MyStr = #02#04#41#01#80#01HalloWelt

Ich habe jetzt zwei Varianten:

Delphi-Quellcode:
Str := #02 +
       #04 +
       #41#01 +
       #80#01 +
       'Hallo Welt';
Wenn ich mir im Debugger die Variable "Str" angucke, wurden die Steuerzeichen leider umgewandelt.

Variante 2:

Ich habe ein Memo, wo ich diese Zeilen im Objektinspektor in Lines.Strings eingetragen habe:

Delphi-Quellcode:
#02
#04
#41#01
#80#01
HalloWelt
Wenn ich dann folgendes mache...

Delphi-Quellcode:
Str := Memo4.Lines.Text;
Str := StringReplace(tmpStr, #13#10, '', [rfReplaceAll]);
... steht in "Str" der Inhalt auch so wirklich drinne wie ich will.

Was muss ich oben in Variante 1 machen, damit es gleich aussieht?

Grüße
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 08:53
Was heißt denn umgewandelt? In was denn umgewandelt?

Ja gut im Debugger bekommst du für #41 ein ")" und für #80 ein "P" angezeigt.
Aber das ist keine Umwandlung, dass ist nur eine andere Darstellung.

Wenn du mal in einer Ascii-Tabelle guckst dann siehst du dass #41 dem Zeichen ")" entspricht und #80 dem Buchstaben "P". Es ist also alles richtig.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (28. Aug 2014 um 08:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 08:53
Laut meinem Verständnis deines Anliegens käme ich auf diese Lösung:

Str := '#02#04#41#01#80#01Hallo Welt';
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#4

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 08:54
Aua, dass muss echt weh tun... Na klaro...
Danke
Let's fetz sprach der Frosch und sprang in den Mixer
  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
 
#5

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 08:59
Laut meinem Verständnis deines Anliegens käme ich auf diese Lösung:

Str := '#02#04#41#01#80#01Hallo Welt';
Der Engländer spricht hier von "nice catch"
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
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 09:20
Laut meinem Verständnis deines Anliegens käme ich auf diese Lösung:

Str := '#02#04#41#01#80#01Hallo Welt';
Der Engländer spricht hier von "nice catch"
Ha, Glück gehabt, blindes Huhn und so ... *kicher
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 09:42
Quatsch Glück,
Gedankenesen!

Aber was hat das dann noch mit Steuerzeichen zu tun?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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
 
#8

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 09:46
Quatsch Glück,
Gedankenesen!

Aber was hat das dann noch mit Steuerzeichen zu tun?

Gruß
K-H
Irgendetwas, was diesen string bekommt interpretiert die zeichenfolge
Code:
#<ziffer><ziffer>
als ein Steuerzeichen
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
Benutzerbild von himitsu
himitsu

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

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 10:00
#80 ... alles was nicht im ASCII-Bereich liegt, dort mußt du mit der Codierung aufpassen.

PS: Bei Stringkonstanten mußt du aufpassen, denn

Delphi-Quellcode:
Str := #$0085 + #$85 + 'Hallo Welt';
Str := #$0085#$85'Hallo Welt';
85 ist nicht immer 85.

Die #$85 könnte der Compiler als ANSI verwenden und dann nach Unicode konvertieren,
während das #$0085 vom Compiler (angeblich) als Unicode erkannt wird.

Und dann kommt es noch darauf an, ob das Str ein AnsiString oder ein String/UnicodeString ist
und als was der Compiler die Konstante anlegt,
denn dabei kann es halt nochmal zum umkonvertieren kommen.


Der sicherste Weg, wo es nie umkonvertiert wird, ist bei der direkten Zuweisung eines einzelnen Chars, welcher aber entweder nach obrigem Muster (#00xx) übergeben werden sollte, oder besser doch als ordinaler Wert.
Oder am aller Besten ist es, wenn man Steuerzeichen (vorallem wo es Probleme geben könnte) eben nicht in Strings verwaltet, sondern "binär" in ByteArrays/Streams/Records/... .
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Aug 2014 um 10:23 Uhr) Grund: deswegen (#13)
  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
 
#10

AW: Steuerzeichen im String

  Alt 28. Aug 2014, 10:04
@himitsu

Das ist richtig, passt aber nun so gar nicht zum Thema.

Hier sollte eben kein Zeichen als Steuerzeichen #80 übergeben werden sondern eine Zeichenfolge '#80' .
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
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 02:21 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