REPLACE '#' in SPACE

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

REPLACE '#' in SPACE

Beitrag von Handeglo (ForumUser / 36 / 0 / 0 ) »
Hallo ABAP Freunde,

ich fasse mich kurz zusammen. Ich arbeite in einem alten Release 4.7

CHAR(150) = '123465.77#'

Code: Alles auswählen.

  REPLACE ALL OCCURRENCES OF '#' IN string WITH space.   ===> Geht nicht!
  REPLACE ALL OCCURRENCES OF '#' IN string WITH  ' '.   ===> Geht nicht!
  REPLACE '#' WITH ' ' into string.    ===> Geht nicht!
bin ich einfach zu blöd für sowas?


Danke für Eure Hilfe

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


Re: REPLACE '#' in SPACE

Beitrag von wreichelt (Top Expert / 1059 / 31 / 192 ) »
Hallo,

versuche es mal mit:
TRANSLATE string using '# '.
Gruß
Wolfgang

Re: REPLACE '#' in SPACE

Beitrag von Handeglo (ForumUser / 36 / 0 / 0 ) »
Hi,

auch versucht aber mit sy-subrc = 4.
irgendwie muss es doch gehen oder mache ich noch was anderes Falsch?


Danke + VG

Re: REPLACE '#' in SPACE

Beitrag von wreichelt (Top Expert / 1059 / 31 / 192 ) »
Hallo,

es gibt die FB:
ECATT_CONV_XSTRING_TO_STRING
und ECATT_CONV_STRING_TO_XSTRING

versuche es mal damit. Das Zeichen # wird auch oft als nicht darstellbares Zeichen verwendet.
Gruß
Wolfgang

Re: REPLACE '#' in SPACE

Beitrag von Handeglo (ForumUser / 36 / 0 / 0 ) »
Hi,

im 4.7 Release finde ich die beiden Fubas nicht. Hast du für meinen Release einen anderen Lösung?

Danke + VG

Re: REPLACE '#' in SPACE

Beitrag von wreichelt (Top Expert / 1059 / 31 / 192 ) »
Hallo,

versuche doch mal mit einem Write ... to in ein Char-Feld das ganze.
oder setze die Zeichenfolge in deinem Feld ganz nach rechts und eliminiere dort das letzte Zeichen.
Gruß
Wolfgang

Re: REPLACE '#' in SPACE

Beitrag von Handeglo (ForumUser / 36 / 0 / 0 ) »
Hi,

Vielen Dank. Das weiß ich auch ABER dieses zeichen was ein € darstellen sollte ist nicht immer da.
Somit kann ich nicht immer den letzten Zeichen löschen.

Gibt es ein andere Lösung?

Danke + VG
Dilan

Re: REPLACE '#' in SPACE

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
Schau dir mal die HEX-Darstellung an. Nichtdarstellbare Zeichen werden als # gekennzeichnet. Das heißt aber nicht, dass es auch das ASCII-Zeichen # ist.
In deinem Fall hast du ja schon geschrieben, dass es das EURO-Zeichen ist.

Re: REPLACE '#' in SPACE

Beitrag von Handeglo (ForumUser / 36 / 0 / 0 ) »
Hi,

ok, Danke habe nun verstanden wo das Problem her kommt.
Aber nochmal: wie Löse ich nun das Problem?

Danke + VG

Re: REPLACE '#' in SPACE

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
hi!

Wo genau liegt das Problem? Du hast bislang ja nur geschrieben, dass du das #-Zeichen im Text nicht ersetzen kannst.
Das es sich hierbei nicht wirklich um das # Zeichen sondern in deinem Fall um das Euro-Zeichen handelt wurde auch schon erörtert. Warum willst du das Zeichen denn ersetzen? Ausdruck? Listdarstellung? Import in Sapscript-Text? Je nachdem sind nämlich unterschiedliche Ansätze notwendig.

Grundsätzlich kannst du in SAP die nicht darstellbaren Zeichen nur über ihren HEX-Wert erzeugen.
http://de.wikipedia.org/wiki/ISO_8859-1
Da du Rel 4.7 im Einsatz hast, ist das umwandeln etwas komplizierter (unter 7.0 gibts dafür eine eigene String-Klasse)

Code: Alles auswählen.

data: ld_char type C length 1.
field-symbols: <la_hex> type any.
assign ld_char to <la_hex> casting type X.
<la_hex> = 'A4'. "= Euro Zeichen in ISO-8859-15
Damit steht in ld_char dein gewünschtes Zeichen und du kannst somit das REPLACE durchführen.

Aber wie ich oben schon gesagt habe, muss das nicht unbedingt die Lösung für dein Problem sein.

lg ADT
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: REPLACE '#' in SPACE

Beitrag von Handeglo (ForumUser / 36 / 0 / 0 ) »
Hi,

vielen Dank schon mal für die Aufklärung. Ok, dann beschreibe ich was ich genau mache und für was ich es genau brauche.
Ein Excel-File steht mir zur Verfügung, die ich über den FuBa "ALSM_EXCEL_TO_INTERNAL_TABLE" hochlade. In eine Spalte des Excel-Files steht der Betrag + € Zeichen (1.000 €). Das € Zeichen ist aber nicht immer in jeder Zeile vorhanden. Deshalb wollte ich explizit den "€" löschen bzw durch einen SPACE ersetzten.
Ich brauche nur den Betrag (1.000), da ich das Feldinhalt in eine Betragsfeld (Nummerisch) übergebe.

Mein Problem ist denke ich hier bekannt. Ich habe es zurzeit so gelöst was ich sehr unschön finde.
Meine unten beschriebene Lösung würde funktionieren, wenn der "€" immer da wäre! ich lösche IMMER den letzten Zeichen. Könnte in einigen Fällen auch ein Zahl sein!

Code: Alles auswählen.

        gv_int = strlen( gs_itab-value ).
        gv_int = gv_int - 1.
        clear gs_itab-value+gv_int(1).

Zu deine Lösung: ==> Replace funtioniert nur mit zeichenartige Datenobjekte. Du hast die "<LA_HEX>" als TYPE X definiert. Bei mir gibt es zumindest einen Dump.
Hast du vielleicht andere Lösung?


Danke + VG

Re: REPLACE '#' in SPACE

Beitrag von wreichelt (Top Expert / 1059 / 31 / 192 ) »
Hallo,

ich hatte ja schon mal den Vorschlag gemacht, die Zeichen nach links zu schieben, ist das erfolgt
kannst Du ja das letzte Zeichen prüfen.
Mittels IF ... CN '0123456789'
und dann Entscheiben, ob das letzte Zeichen weg muss.

http://help.sap.com/saphelp_46c/helpdat ... ontent.htm

Gruß
Wolfgang

Ist sicher nicht sehr elegant, sollte so aber funktionieren.

Re: REPLACE '#' in SPACE

Beitrag von a-dead-trousers (Top Expert / 4419 / 224 / 1189 ) »
Handeglo hat geschrieben:Replace funtioniert nur mit zeichenartige Datenobjekte. Du hast die "<LA_HEX>" als TYPE X definiert. Bei mir gibt es zumindest einen Dump.
Hast du vielleicht andere Lösung?
Ja, nicht die <LA_HEX> für den REPLACE verwenden sondern die LD_CHAR.
wreichelt hat geschrieben:ich hatte ja schon mal den Vorschlag gemacht, die Zeichen nach links zu schieben, ist das erfolgt
kannst Du ja das letzte Zeichen prüfen.
Mittels IF ... CN '0123456789'
und dann Entscheiben, ob das letzte Zeichen weg muss.
Auch eine Möglichkeit. Vielleicht sogar besser als nach einem bestimmten Zeichen zu suchen, weil dann man Ende nur Zahlen übrigbleiben. Man muss nur beachten, dass entweder der Punkt (amerikanisch) oder der Beistrich (deutsch) das Trennzeichen für die Dezimalstellen ist. Auch muss man von links beginnend jedes einzelne Zeichen prüfen.

Wenn ihr ein höheres Release hättet (6.04 glaub ich) könnte man ganz einfach beim Replace eine RegEx einsetzen.
Mit [^0-9,\.] findet man alle Zeichen die NICHT 0-9 oder . bzw. , sind und kann diese z.B. mit Space ersetzen.

lg ADT
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

Seite 1 von 1

Vergleichbare Themen

2
Antw.
508
Views
SHIFT LEFT with space
von HH_ABAP » 23.02.2024 14:22 • Verfasst in ABAP® für Anfänger
7
Antw.
440
Views
SPLITEN - Mit verschiedenen leer space
von HH_ABAP » 30.04.2023 15:19 • Verfasst in ABAP® für Anfänger
0
Antw.
1210
Views
Probleme beim Arbeiten mit SPACE
von Steffi221185 » 26.10.2006 14:34 • Verfasst in Basis
6
Antw.
3646
Views
ALV - Character Feld mit Space am Anfang
von mfromg » 25.07.2018 13:21 • Verfasst in ABAP® Core
0
Antw.
2195
Views
Unicode Problematik bei Character 'SPACE'
von ABAP_User » 31.03.2014 18:40 • Verfasst in Web-Dynpro, BSP + BHTML

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1790
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2330

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1790
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2330

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 364
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 964
MS-Word als Editor
letzen Monat von tekko 1 / 4474