(Lange) Gedankenstriche in ABAP

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

(Lange) Gedankenstriche in ABAP

Beitrag von ralf.wenzel (Top Expert / 3856 / 196 / 275 ) »
Moin,

gegeben sei eine interne Tabelle mit ASCII-Inhalten, die genau so an ein Folgesystem weitergegeben werden soll (ein Formular in Proportionalschrift).

Striche sind dabei Folgen von Bindestrichen und das missfällt dem Anwender. Er hätte gern lange Gedankenstriche stattdessen in der Hoffnung, dass die sich im Druck aneinanderfügen wie ein geschlossener Strich.

Ich habe aber keinen Weg gefunden, die Bindestriche in einem String gegen Gedankenstriche zu ersetzen. Geht das irgendwie? Mit einer möglichst kompakten Anweisung (unter Berücksichtigung der Tatsache, dass die itab aus einem Feld LINE besteht, das den Text enthält)?

Danke!
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: (Lange) Gedankenstriche in ABAP

Beitrag von a-dead-trousers (Top Expert / 4359 / 220 / 1172 ) »
Geht das nicht?

Code: Alles auswählen.

replace all occurrences of '-' in ld_text with '–'. "<-- Gedankenstrich oder Halbgeviertstrich z.B. vom Browser kopiert und eingefügt
* bzw.
replace all occurrences of '-' in table lt_text with '–'. "<-- Gedankenstrich oder Halbgeviertstrich z.B. vom Browser kopiert und eingefügt
Der lange Gedankenstrich (oder auch Geviertstrich) ist im Grunde ein Unicode-Zeichen und wird in ASCII nicht funktionieren.
https://de.wikipedia.org/wiki/Geviertstrich
Windows 1252 hätte zwar auf 0x97 den Geviertstrich aber das müsste der Empfänger auch entsprechend interpretieren.
https://de.wikipedia.org/wiki/Windows-1252
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: (Lange) Gedankenstriche in ABAP

Beitrag von IHe (Specialist / 148 / 35 / 48 ) »
Im ASCII-Zeichensatz (und historisch an der Schreibmaschine) wird ansonsten auch gerne der Unterstrich für Linien verwendet:
__________________________________________
Wäre das eine Alternative?
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Re: (Lange) Gedankenstriche in ABAP

Beitrag von ralf.wenzel (Top Expert / 3856 / 196 / 275 ) »
Nein, leider nicht. Auf die Idee bin ich auch gekommen (hätte ich dazuschreiben sollen, sorry).
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: (Lange) Gedankenstriche in ABAP

Beitrag von ewx (Top Expert / 4824 / 304 / 635 ) »
ich würde ja den hier nehmen: ASCII 196 ─
aber wie adt bereits fragte: Woran scheitert es denn genau?

Re: (Lange) Gedankenstriche in ABAP

Beitrag von ralf.wenzel (Top Expert / 3856 / 196 / 275 ) »
Daran, dass ich das nicht im ABAP-Editor eingeben kann. Wenn ich das mache, erscheint ein Bindestrich. Genau wie der auf der Tastatur.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: (Lange) Gedankenstriche in ABAP

Beitrag von ewx (Top Expert / 4824 / 304 / 635 ) »
du kannst doch den HEX-Wert des Zeichens verwenden. ähnlich wie CL_ABAP_CHAR_UTILITIES=>CR_LF

Re: (Lange) Gedankenstriche in ABAP

Beitrag von MAJOR_TOM (ForumUser / 15 / 0 / 0 ) »
Aber ASCII 196 im Notepad eingeben funktioniert. Und dann in den ABAP Editor kopieren

Re: (Lange) Gedankenstriche in ABAP

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Kopieren funktioniert meiner Erfahrung nach nicht (weder ADT noch SE80). Aber man kann das Zeichen mit Hilfe des Nummernblocks auf der Tastatur eingeben: Alt gedrückt halten und 2500 tippen (entspricht dem Codepoint).
Nur ASCII ist das dann natürlich nicht mehr....

Re: (Lange) Gedankenstriche in ABAP

Beitrag von a-dead-trousers (Top Expert / 4359 / 220 / 1172 ) »
ralf.wenzel hat geschrieben:
23.02.2024 14:40
Daran, dass ich das nicht im ABAP-Editor eingeben kann. Wenn ich das mache, erscheint ein Bindestrich. Genau wie der auf der Tastatur.
Der ABAP-Editor verwendet doch mit "Curier New" (oder was auch immer eingestellt ist) eine Äquidistanz-Schrift. Ich würde mal sagen, das schaut nur so aus wie ein Bindestrich, ist aber in Wirklichkeit ein langer Gedankenstrich. Deswegen hab ich ja in meinem Codeschnippsel auch einen entsprechenden Kommentar eingefügt um auf das abweichende Zeichen hinzuweisen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: (Lange) Gedankenstriche in ABAP

Beitrag von MAJOR_TOM (ForumUser / 15 / 0 / 0 ) »
Bei mir funktioniert das tatsächlich wie folgt:
Im Notepad die Schriftart auf "Consolas" einstellen.
ALT+196 eingeben - langer Gedankenstrich erscheint. Eventuell wiederholen, um zu prüfen, ob sich die Striche wirklich verbinden. Nun das/die Zeichen kopieren und in die SE80 einfügen. Dabei ist es egal, welche Schriftart in der SE80 eingestellt ist. Ich habe das eben geprüft.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
2972
Views
Unterschiede in der ABAP-Länge
von ABAPMeff » 05.12.2012 10:00 • Verfasst in ABAP® für Anfänger
2
Antw.
4760
Views
ABAP in Smartforms: Länge einer CHAR Variablen festlegen
von Nautilus » 23.02.2006 14:17 • Verfasst in ABAP® Core
1
Antw.
3013
Views
Konvertierug vom datentyp char der länge 4 in char der länge
von ratoshuan » 28.06.2006 11:33 • Verfasst in ABAP® Core
30
Antw.
9484
Views
Länge von Nachrichten in SAP GUI
von debianfan » 29.05.2018 17:16 • Verfasst in ABAP® für Anfänger
1
Antw.
1779
Views
ALV Dropdown Länge
von Legxis » 04.07.2018 14:53 • Verfasst in ABAP® Core

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.