gelöst Zeichen in einem Textfeld ersetzen


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst Zeichen in einem Textfeld ersetzen

Beitragvon kbit100 » 07.06.2018, 13:30

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ß
kbit100
Specialist
 
Beiträge: 123
Registriert: 11.12.2006, 14:55
Dank erhalten: 0 mal

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Zeichen in einem Textfeld ersetzen

Beitragvon a-dead-trousers » 07.06.2018, 13:42

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.
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.07
Basis: 7.40

Für diese Nachricht hat a-dead-trousers einen Dank bekommen :
kbit100
a-dead-trousers
Top Expert
 
Beiträge: 3011
Registriert: 07.02.2011, 13:40
Dank erhalten: 744 mal
Ich bin: Entwickler/in

Re: Zeichen in einem Textfeld ersetzen

Beitragvon kbit100 » 07.06.2018, 14:14

Das erzeugt leider auch einen Kurzdump.
:-(
kbit100
Specialist
 
Beiträge: 123
Registriert: 11.12.2006, 14:55
Dank erhalten: 0 mal

Re: Zeichen in einem Textfeld ersetzen

Beitragvon DeathAndPain » 07.06.2018, 14:34

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.

Für diese Nachricht hat DeathAndPain einen Dank bekommen :
kbit100
DeathAndPain
Expert
 
Beiträge: 740
Registriert: 05.05.2006, 10:14
Dank erhalten: 170 mal
Ich bin: Entwickler/in

Re: Zeichen in einem Textfeld ersetzen

Beitragvon black_adept » 07.06.2018, 14:47

oder für so einen trivialen Fall könnte man auch das gute alte TRANSLATE verwenden:
Code: Alles auswählen
TRANSLATE gv_feld USING ' _'.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Für diese Nachricht hat black_adept einen Dank bekommen :
kbit100
black_adept
Top Expert
 
Beiträge: 3030
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 512 mal
Ich bin: Freiberufler/in

Re: Zeichen in einem Textfeld ersetzen

Beitragvon kbit100 » 07.06.2018, 16:36

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.
 
kbit100
Specialist
 
Beiträge: 123
Registriert: 11.12.2006, 14:55
Dank erhalten: 0 mal


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Sachkonto für FI Rechnung in idoc übermittel
vor 8 Stunden von uibig 0 Antw.
Anlagenmigration Export
vor 22 Stunden von verzweifelt 1 Antw.
SFP - PDF Datenbindung
Gestern von a-dead-trousers 2 Antw.
Protected Attribut füttern
vor 4 Tagen von Tommy Nightmare 3 Antw.
gelöst Problem bei der Tree-Darstellu ng einer Hierarchie
Gestern von khb 3 Antw.

  Ähnliche Beiträge beta
Nichtdruckbare Zeichen ersetzen
01.07.2008, 12:58 von TWP 3 Antw.
Letzten zwei Zeichen eines Strings ersetzen
28.06.2006, 13:30 von Thomas R. 4 Antw.
Führendes '!' in einem Textfeld löschen
28.07.2014, 13:57 von Sculi 5 Antw.
gelöst SELECT AUF ZEICHEN IN EINEM FELD
11.02.2013, 09:17 von Adrian 3 Antw.
WHERE-Klausel - Bestimmte Zeichen aus einem Feld (gelöst)
18.10.2011, 15:38 von cragg 4 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron