REPLACE mit byteartigem Separator

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

REPLACE mit byteartigem Separator

Beitrag von reinhold_j (ForumUser / 29 / 0 / 0 ) »
Hi,
ich bin dabei Programme "Unicodefähig" zu machen (also obsoletes Coding und FuBa's auszutauschen).
Bei folgender Problematik weiß ich momentan nicht weiter....

Code: Alles auswählen.

DATA: BEGIN OF upload_field OCCURS 100,
      one(3000) TYPE c,
      END OF upload_field.

Code: Alles auswählen.

CONSTANTS: c_sep TYPE x VALUE '09'.                       "TAB DELIMITER

Code: Alles auswählen.

LOOP AT upload_field.
    TRANSLATE upload_field-one USING '" '.     "Entomo file contains ",s
    DO fsize TIMES.
     REPLACE ',' WITH c_sep INTO upload_field.         "tab delimiter.
      IF upload_field-one NA ','.
        EXIT.
      ENDIF.
    ENDDO.
    CONDENSE upload_field-one NO-GAPS.
    MODIFY upload_field.
  ENDLOOP.
Replace ',' with.... ist so ja nun nicht mehr erlaubt, da c_sep type x ist.
hat jemand eine Idee??
der Zusatz IN BYTE MODE hilft mir glaub ich a net richtig, da upload_field zeichenartig ist....

:?: :?:

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


REPLACE

Beitrag von poldi (Specialist / 116 / 0 / 0 ) »
Hallo Reinhold!

Versuche es mal so:

report zsntest.
DATA: BEGIN OF upload_field OCCURS 100,
one(3000) TYPE c,
END OF upload_field.


CONSTANTS: c_sep(4) TYPE x VALUE '0009'. "TAB DELIMITER

field-symbols: <f>.
data: c(1).
break-point.
assign c_sep to <f> type 'C'.
c = <f>.
LOOP AT upload_field.
TRANSLATE upload_field-one USING '" '. "Entomo file contains ",s
DO 1 TIMES.
REPLACE ',' WITH c INTO upload_field. "tab delimiter.
IF upload_field-one NA ','.
EXIT.
ENDIF.
ENDDO.
CONDENSE upload_field-one NO-GAPS.
MODIFY upload_field.
ENDLOOP.

Viele Grüße
Wilfried

Beitrag von reinhold_j (ForumUser / 29 / 0 / 0 ) »
Hallo Wilfried,

danke schon mal - aber leider bekomme ich nun dir mir nichts sagende Fehlermeldung

Code: Alles auswählen.

Die Länge von "C_SEP" in Bytes muß unabhängig von der Größe eines Unicode-Zeichens ein Vielfaches dieser Größe sein.
???

Beitrag von poldi (Specialist / 116 / 0 / 0 ) »
Hallo Reinhold,

verstehe ich nicht??? Ist c_sep in der Länge 4 vereinbart? Das Coding habe ich direkt aus dem SAP-System kopiert und auch getestet. Wenn es sich nicht aufklärt, kannst Du mir dann mal das Coding schicken?

Gruß,
Wilfried

Beitrag von reinhold_j (ForumUser / 29 / 0 / 0 ) »
Hi Wilfried,
ich hatte die Längenangabe 4 übersehen!

Danke nochmal!

Viele Grüße

PS: Reinhold ist mein Nachname - bin ein Mädel :wink:

REPLACE - SPLIT

Beitrag von poldi (Specialist / 116 / 0 / 0 ) »
Hallo,

noch als Nachtrag: Wenn C_SEP für den Befehl SPLIT verwendet wird, kann es sein, dass vor der Deklaration von C_SEP noch ein

DATA: PSEUDO TYPE D.

gesetzt werden muss, da dann C_SEP zumindest auf Halbwortgrenze ausgerichtet sein muss.

Viele Grüße
Wilfried

REPLACE mit byteartigem Separator

Beitrag von Sylvia (ForumUser / 1 / 0 / 0 ) »
Hallo Reinhold_J,

du könntest auch die Klasse cl_abap_char_utilities benutzen.

....
class cl_abap_char_utilities definition load.
REPLACE ',' WITH cl_abap_char_utilities=>horizontal_tab.

War auch gerade nach der Suche für eine Lösung escape (1B) und File Separator (1C). Da gibt es aber noch keine Konstanten. Aber mit dem Tip jetzt von euch kann ich nun auch weitermachen :-)

Ciao Sylvia

Beitrag von iceman72 (ForumUser / 1 / 0 / 0 ) »
Hallo zusammen!

Die Lösung mit cl_abap_char_utilities ist sehr elegant und einfach. Vielen Dank!

Die andere Lösung habe ich auch getestet. Allerdings musste ich die Definition der Konstante etwas ändern: 0900 anstelle 0009

CONSTANTS: c_sep(4) TYPE x VALUE '0900'. "TAB DELIMITER

Ich bin nicht sicher, ob auch 0009 vorkommen kan - je nach OS des Servers. Ist ja eine typische Frage, ob Big Endian or Little Endian benutzt wird.

Die Konstante cl_abap_char_utilities=>horizontal_tab hatte übrigens in meinem System den Wert 0900.

Viele Grüße,
Steffen

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2242
Views
Verschiedene Zeichenfolgen als Separator
von ABAP_User » 18.05.2011 15:24 • Verfasst in ABAP® für Anfänger
6
Antw.
2974
Views
ALV Tree Toolbar / Separator entfernen
von Ben2408 » 18.09.2017 13:38 • Verfasst in ABAP Objects®
6
Antw.
2156
Views
Replace
von christof » 03.10.2017 19:35 • Verfasst in ABAP® für Anfänger
2
Antw.
1784
Views
REPLACE
von mich140883 » 27.09.2009 15:34 • Verfasst in ABAP® für Anfänger
5
Antw.
3183
Views
Replace Regex
von Legxis » 24.05.2018 15:09 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Feldwerte vergleichen
vor 11 Stunden von wreichelt 2 / 30
Workflow-Datenfluss mit Multi-Line-Container
vor 13 Stunden von ewx gelöst 2 / 93
Mahnung erstellen
vor 17 Stunden von Sebastian82 4 / 126
Absprung VA02 Position
vor 2 Tagen von gs3rr4 gelöst 3 / 122

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

Feldwerte vergleichen
vor 11 Stunden von wreichelt 2 / 30
Workflow-Datenfluss mit Multi-Line-Container
vor 13 Stunden von ewx gelöst 2 / 93
Mahnung erstellen
vor 17 Stunden von Sebastian82 4 / 126
Absprung VA02 Position
vor 2 Tagen von gs3rr4 gelöst 3 / 122

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 2 Tagen von Manfred K. 1 / 86
Export von Spools in XLSX
vor einer Woche von abapamateur 1 / 854
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 1456