Interne Tabelle befüllen

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

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

Interne Tabelle befüllen

Beitrag von Tanega (ForumUser / 12 / 0 / 0 ) »
Hallo,
ich habe mal wieder ein Problem und weil mir hier immer so toll geholfen wurde dachte ich fragste nochmal!

Code: Alles auswählen.

 lv_text = 'Haus##Stein##Ball##Leder' 
DATA : BEGIN OF ls_carac,
         f1(80) TYPE c,
         f2(80) TYPE c,
       END OF ls_carac,
       lt_carac LIKE TABLE OF ls_carac.

  ls_carac-f1 = 'Objekt'.
  ls_carac-f2 = 'Material'.
  APPEND ls_carac TO lt_carac.

Folgendes Problem ich mochte die einzelnen Wörter aus der variablen lv_text fortlaufend in die Tabelle schreiben, wie zu sehen ist sind die Wörter immer durch zwei ## getrennt. Wie mache ich das am besten?

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


Re: Interne Tabelle befüllen

Beitrag von wreichelt (Top Expert / 1046 / 30 / 192 ) »
Hallo,

im ABAP gibt's den Befehl SPLIT.

Gruß
Wolfgang

Re: Interne Tabelle befüllen

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Schaue dir die ## genauer an! Ich schätze eher, dass es sich um <cr><lf> handelt, die in der Anzeige (Debugger?) als ## angezeigt werden...

Re: Interne Tabelle befüllen

Beitrag von Tanega (ForumUser / 12 / 0 / 0 ) »
Danke für den Split Tip! Aber leider bin ich noch nicht ganz am Ziel.

Code: Alles auswählen.

    DATA : BEGIN OF ls_carac
         , f1(80) TYPE c
         , f2(80) TYPE c
         , END OF ls_carac
         , lt_carac LIKE TABLE OF ls_carac.

  ls_carac-f1 = 'Objekt'.
  ls_carac-f2 = 'Material'.

  APPEND ls_carac TO lt_carac.

  SPLIT LV_text AT '##' INTO TABLE lt_carac .
http://www.abapforum.com/forum/index.php
Leider bleibt die 1.Zeile leer und die Wörter werden alle in die Erste Spalte f1 geschrieben aber nicht abwechselnd f1 f2.

Kann mir da noch jemand helfen?

Re: Interne Tabelle befüllen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »

Code: Alles auswählen.

  SPLIT LV_text AT '##' INTO TABLE lt_carac .
Das funktioniert meistens nicht!

## sind nicht druckbare Zeichen im SAP und koennen CR, LF oder TAB oder BEEP oder oder oder sein! Zu 99% ist es nicht das Zeichen '#'...

Wie Enno bereits schrieb: Du must im Debugger schauen, um was es sich genau handelt. DAS siehst Du nur, wenn Du Dir die Zeichen im HEX-Format anzeigen laesst.

Re: Interne Tabelle befüllen

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Huhu zusammen,

warum sollte # ein anderes Zeichen sein?

Es wird doch "hart" in die Variable geschrieben oder versteh ich das falsch?

Code: Alles auswählen.

lv_text = 'Haus##Stein##Ball##Leder'
Der Split-Befehl müsste an der Stelle ja dann funktionieren, schreibt allerdings die Inhalte nur in die 1. Spalte der Tabelle.
Daher müsste man sich wohl etwas anders behelfen:

Code: Alles auswählen.

DATA: t_text  LIKE TABLE OF lv_text,
      index   TYPE sy-index.
SPLIT lv_text AT '##' INTO TABLE t_text.

LOOP AT t_text ASSIGNING <text>.
  ADD 1 TO index.

  IF ( index MOD 2 ) <> 0.
    ls_carac-f1 = <text>.
  ELSE.
    ls_carac-f2 = <text>.
    APPEND ls_carac TO lt_carac.
  ENDIF.
ENDLOOP.

Re: Interne Tabelle befüllen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Weil im SAP 'nicht druckbare Zeichen" ALLE als # angezeigt werden. Egal ob es ein CR, or LF oder TAB oder BEEP oder oder oder ist...

Du MUSST es Dir im HEX anzeigen lassen. Wenn DU dann ein OD oder 0A oder 07 oder 0B... siehst, dann wird es im SAP als # in der Textanzeige angezeigt.

Wenn jemand im ABAP '#' schreibt, dann ist es auch das Zeichen '#'. Das passt aber dann beim Split nicht mit den Zeichen ueberein.

Re: Interne Tabelle befüllen

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
abuma hat geschrieben:Huhu zusammen,

warum sollte # ein anderes Zeichen sein?

Es wird doch "hart" in die Variable geschrieben oder versteh ich das falsch?

Code: Alles auswählen.

lv_text = 'Haus##Stein##Ball##Leder'
Ja. Das sieht mir aber sehr nach Vereinfachung und Test aus.
So nach dem Motto: Ich kopiere mir mal den zu bearbeitenden Text heraus und gucke, wie der Split funktioniert.

Re: Interne Tabelle befüllen

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
hmm, ja hast recht :D
Allerdings wird ja nur das erste Wort nicht richtig übernommen und bei den anderen passt es.
Aber dann bringt wohl nur der Debugger Licht ins Dunkel.

Liebe Grüße
abuma

Re: Interne Tabelle befüllen

Beitrag von Tanega (ForumUser / 12 / 0 / 0 ) »
So vielen Dank,

erste Zeile funktioniert jetzt auch auch!

Code: Alles auswählen.

DATA: t_text  LIKE TABLE OF lv_text,
      index   TYPE sy-index.
SPLIT lv_text AT '##' INTO TABLE t_text.

LOOP AT t_text ASSIGNING <text>.
  ADD 1 TO index.

  IF ( index MOD 2 ) <> 0.
    ls_carac-f1 = <text>.
  ELSE.
    ls_carac-f2 = <text>.
    APPEND ls_carac TO lt_carac.
  ENDIF.
Das verstehe ich auch soweit, bis auf das <text> was ist das? Der meckert bei mir immer das er das nicht kennt

Re: Interne Tabelle befüllen

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
<text> ist ein Feldsymbol, dass ich bei meinem Coding definiert hatte.

Code: Alles auswählen.

FIELD-SYMBOLS: <text> LIKE LINE OF t_text.
Liebe Grüße
abuma

Seite 1 von 1

Vergleichbare Themen

3
Antw.
2380
Views
interne Tabelle mit Value befüllen.
von L0w-RiDer » 30.11.2018 11:28 • Verfasst in ABAP® für Anfänger
2
Antw.
7075
Views
Interne Tabelle befüllen
von watle » 28.09.2015 23:14 • Verfasst in ABAP® für Anfänger
4
Antw.
1861
Views
Interne Tabelle ab einer bestimmten Spalte anfangen zu befüllen möglich?
von tekko » 11.09.2020 15:00 • Verfasst in ABAP® für Anfänger
4
Antw.
1136
Views
3
Antw.
2607
Views
DB Tabelle befüllen
von bohne » 06.12.2006 23:47 • 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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 8 Stunden von Bright4.5 3 / 1481
Regex in where
vor 9 Stunden von tar 6 / 146

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

Daten an Tabelle binden
vor 8 Stunden von Bright4.5 3 / 1481
Regex in where
vor 9 Stunden von tar 6 / 146

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821