Zeichenkette mit geschützten Leerzeichen

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

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

Zeichenkette mit geschützten Leerzeichen

Beitrag von Irie ( / / 0 / 3 ) »
Hallo zusammen!

Ich würde gerne wissen, wie ich eine Zeichenkette mit geschützten Leerzeichen zustande bekomme.

Diese soll anschließend ausgegeben bzw. in eine Datei geschrieben werden. Das Problem ist, dass er mit concatenate eingefügte Leerstellen (' ') einfach verschluckt.

Im Voraus vielen Dank für die Hilfe!

Irie

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


Beitrag von Flo (Specialist / 161 / 0 / 0 ) »
du kannst strings mit concatenate string1 string2 separated by space mit leerzeichen dazwischen zusammenfügen. wenn du mehrere leerzeichen hintereinander haben willst tut es allerdings so nicht.

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Hi Irie,

du kannst anstelle der Leerzeichen einfach ein Zeichen nehmen, dass sonst nicht vorkommt (§, ~, #, ^ etc) und danach im konkatenierten String mittels

Code: Alles auswählen.

TRANSLATE feld USING '§ '.
dein Sonderzeichen durch Leerzeichen austauschen.

Gruß,
Enno

Beitrag von Irie ( / / 0 / 3 ) »
Danke für die beiden Tipps!

Mit dem Translate klappt es auch prima, jetzt kann ich den Daten genau das erforderliche Format geben, sehr schön :D

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo Irie,

gib doch bitte mal ein Beispiel für Deine Datenstruktur.
Möglicherweise gibt es noch eine weitere Möglichkeit unter Verwendung von Feldsymbolen und strukturierten Typen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Gast ( / / 0 / 3 ) »
Verschiedene Daten sollen zu einer Datei mit fester Spaltenbreite und insgesamt 206 Stellen verschmelzen.

Beispiel: aus Zeichenfolgen à la A0123456789, 0123 und 20051121 soll folgendes entstehen:
A0123456789[6 Leerstellen]0123[12 Leerstellen]20051121

Welche andere Möglichkeit könnte es hierfür geben?

Beitrag von black_adept (Top Expert / 4087 / 126 / 940 ) »

Code: Alles auswählen.

TYPES: BEGIN OF TY_ITAB,
          FELD1(17) TYPE C,
          FELD2(16) TYPE C,
          FELD3(8)  TYPE C,
          FILLER(165) TYPE c,
       END OF TY_ITAB.

DATA: ITAB TYPE STANDARD TABLE OF ITAB WITH NON_UNIQUE DEFAULT KEY.
So etwa könnte man das machen.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Sollte man den Fall haben, dass sich der Feldinhalt eines Schlüssels aus mehreren Teilen bestehen und man das Schlüsselfeld nicht selbst als strukturierten Typ definieren kann (hier als Beispiel DELETE_TEXT), kann man auf die Verwendung von Feldsymbolen ausweichen.

Am Beispiel Vertriebstext zum Material:

Code: Alles auswählen.

TYPES:
  BEGIN OF ts_vtxt_key,
    matnr TYPE matnr,
    vkorg TYPE vkorg,
    vtweg TYPE vtweg,
  END OF  ts_vtxt_key.

DATA:
  l_tdname TYPE tdobname. "STXH-TDNAME

FIELD-SYMBOLS:
  <ls_tdname> TYPE ts_vtxt_key.

* Feldsymbol auf L_TDNAME legen
ASSIGN l_tdname TO <ls_tdname> CASTING. "CASTING ist wichtig
* jetzt kann man mittels des FS die Daten sauber befüllen
<ls_tdname>-matnr = mvke-matnr.
<ls_tdname>-vkorg = mvke-vkorg.
<ls_tdname>-vtweg = mvke-vtweg.

* etc.
alternativ:

Code: Alles auswählen.

DATA:
  ls_tdname TYPE ts_vtxt_key.
ls_tdname-matnr = mvke-matnr.
ls_tdname-vkorg = mvke-vkorg.
ls_tdname-vtweg = mvke-vtweg.
l_tdname = ls_tdname. "umkopieren
PS: ich preferiere die Variante mit Feldsymbolen. Das ist aber ein bisschen auch Geschmackssache

Und nun noch ein FB, der einen bestimmten Typ fordert: hier NAME: TDOBNAME oder STXH-TDNAME

Code: Alles auswählen.

        CALL FUNCTION 'DELETE_TEXT'
          EXPORTING
*         CLIENT                = SY-MANDT
            id                    = '0001'
            language              = sy-langu
            name                  = l_tdname "Typ muss TDBONAME o.Ä. sein
            object                = 'MVKE'
            savemode_direct       = 'X'
*         TEXTMEMORY_ONLY       = ' '
*         LOCAL_CAT             = ' '
          EXCEPTIONS
            not_found             = 1
            OTHERS                = 2.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Seite 1 von 1

Vergleichbare Themen

3
Antw.
3080
Views
Zeichenkette nach 2. Leerzeichen abschneiden
von BubbleSort » 03.08.2016 10:23 • Verfasst in ABAP® für Anfänger
12
Antw.
10252
Views
Fehler bei Zuweisung: Überschreiben eines geschützten Felds.
von c oco » 10.04.2012 16:49 • Verfasst in ABAP® für Anfänger
3
Antw.
2665
Views
Wie Zeichenkette bei Buchstaben trennen?
von samson » 29.01.2008 13:33 • Verfasst in ABAP® für Anfänger
4
Antw.
20622
Views
Abschneiden einer Zeichenkette
von Katta » 09.08.2007 11:23 • Verfasst in ABAP® für Anfänger
11
Antw.
7952
Views
Zeichenkette suchen in C-Feld
von m4nu » 12.09.2013 11:21 • 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

Daten an Tabelle binden
Gestern von Bright4.5 1 / 511
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2146
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8742