Zeichen in einem Textfeld ersetzen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Zeichen in einem Textfeld ersetzen

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo zusammen,

ich habe folgendes Problem:
Ich erhalte aus einer Datei diverse Textfelder (char20), in denen ich die Leerzeichen durch Unterstriche ersetzen muss.
Also bspw. '12345 678' nach '12345_678'.
Diese Leerzeichen können auch mehrfach im Textfeld vorkommen, also bspw. '123_456_789'.
Leerzeichen am Ende des Strings sollen nicht ersetzt werden, also nicht '123_456_789______'.

Wenn ich die Anweisung

Code: Alles auswählen.

REPLACE ALL OCCURRENCES OF space
IN gv_feld WITH '_'
IN CHARACTER MODE.
verwende, bekomme ich einen Kurzdump.

Hat jemand eine Idee? Mag sein, dass ich mal wieder den Wald vor lauter Bäumen nicht sehe. Vielen Dank für eure Tipps.

Gruß

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


Re: Zeichen in einem Textfeld ersetzen

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
Viele ABAP-Befehle "optimieren" Leerzeichen in Zeichenfeldern mit fixer Länge. Deswegen gibt es z.B. beim CONCATENATE den Zusatz RESPECTING BLANKS. SPACE ist intern ein CHAR1 und das Leerzeichen wird somit wegrationalisiert.

Code: Alles auswählen.

REPLACE ALL OCCURRENCES OF ` ` "<-- Bei String-Literalen bleiben Leerzeichen erhalten
IN gv_feld WITH '_'
IN CHARACTER MODE.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
kbit100

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: Zeichen in einem Textfeld ersetzen

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Das erzeugt leider auch einen Kurzdump.
:-(

Re: Zeichen in einem Textfeld ersetzen

Beitrag von DeathAndPain (Top Expert / 1964 / 261 / 415 ) »
Wäre mal interessant gewesen, was das für ei nKurzdump ist. Leider verrätst Du es uns nicht. Irgendeine Begründung muss in dem Dump ja drinstehen.

Moderner ist aber ohnehin die REPLACE( )-Funktion, die ich daher an Deiner Stelle versuchen würde. Also

gv_feld = REPLACE( ... bin zu faul, jetzt die Syntax nachzusehen, aber F1 ist Dein Freund ... ).

Diese Syntax unterstützt Ausdrücke, was der alte REPLACE aus längst vergangenen Releases nicht tut. Ich denke nicht, dass die SAP da noch Dumps wirft, wenn Du ein Leerzeichen damit ersetzt.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
kbit100


Re: Zeichen in einem Textfeld ersetzen

Beitrag von black_adept (Top Expert / 4117 / 129 / 951 ) »
oder für so einen trivialen Fall könnte man auch das gute alte TRANSLATE verwenden:

Code: Alles auswählen.

TRANSLATE gv_feld USING ' _'.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
kbit100

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zeichen in einem Textfeld ersetzen

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Vielen Dank für eure Hilfe.

Ich habe mir jetzt so geholfen:

Code: Alles auswählen.

TRANSLATE gv_feld USING ' _'.
SHIFT gv_feld RIGHT DELETING TRAILING '_'.
SHIFT gv_feld LEFT DELETING LEADING space.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2077
Views
Ersetzen von Zeichen
von SAP_ENTWICKLER » 10.12.2018 08:01 • Verfasst in ABAP® Core
3
Antw.
4372
Views
Nichtdruckbare Zeichen ersetzen
von asdfjklö » 01.07.2008 13:21 • Verfasst in ABAP® für Anfänger
5
Antw.
1460
Views
Letzte String Zeichen ersetzen
von ichse18577 » 13.11.2019 14:02 • Verfasst in ABAP® für Anfänger
9
Antw.
1736
Views
Im String mit Regex Zeichen ersetzen
von MarkusW » 20.08.2020 13:42 • Verfasst in ABAP® Core
4
Antw.
4812
Views
Letzten zwei Zeichen eines Strings ersetzen
von mgo » 28.06.2006 08:38 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Absprung VA02 Position
vor 21 Minuten von black_adept 2 / 5
OPD Druck im SPOOL
vor einer Stunde von Manfred K. 1 / 7
Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1796
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2333

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.

Aktuelle Forenbeiträge

Absprung VA02 Position
vor 21 Minuten von black_adept 2 / 5
OPD Druck im SPOOL
vor einer Stunde von Manfred K. 1 / 7
Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1796
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2333

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor einer Stunde von Manfred K. 1 / 7
Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 374
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 981
MS-Word als Editor
letzen Monat von tekko 1 / 4485