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 / 4271 / 213 / 1140 ) »
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 / 1795 / 213 / 396 ) »
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 / 3943 / 105 / 886 ) »
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.
1368
Views
Ersetzen von Zeichen
von SAP_ENTWICKLER » 10.12.2018 08:01 • Verfasst in ABAP® Core
3
Antw.
4010
Views
Nichtdruckbare Zeichen ersetzen
von asdfjklö » 01.07.2008 13:21 • Verfasst in ABAP® für Anfänger
5
Antw.
980
Views
Letzte String Zeichen ersetzen
von ichse18577 » 13.11.2019 14:02 • Verfasst in ABAP® für Anfänger
9
Antw.
932
Views
Im String mit Regex Zeichen ersetzen
von MarkusW » 20.08.2020 13:42 • Verfasst in ABAP® Core
4
Antw.
4618
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

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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141