String zerlegen und in interne Tabelle packen

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

String zerlegen und in interne Tabelle packen

Beitrag von Jens (Specialist / 106 / 0 / 0 ) »
Hallo,

ich bin's mal wieder mit einem für Euch wahrscheinlich trivialen Problem. Ich habe einen String, dessen Länge ich nicht kenne (aber zur Laufzeit ermitteln kann, vermutlich durch STRLEN). Nun muß der String aber in jeweils 132-Zeichen-Blöcke zerlegt werden und in eine interne Tabelle gepackt werden (also eine Tabellenzeile ist genauso ein 132-Zeichen-Block) Wie würdet Ihr das machen?
Vorab Danke.

Gruß,
Jens

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


Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Wenn die itab Zeilen des Typs C hat und wenn die Länge 132 gleich definierte Länge der itab-Zeile ist:

Code: Alles auswählen.

DATA: str_len TYPE I, wa_len TYPE I, offset TYPE I.
DESCRIBE FIELD ... LENGTH wa_len. " bestimmt hast Du ein passendes Feld.

DESCRIBE FIELD str ... LENGTH str_len. " oder str_len = strlen( str ).
* je nach Typ bzw. welche Info Du brauchst.

CLEAR itab[]. " Falls nicht sicher ist, daß die itab leer ist
DO.
  APPEND str+offset TO itab.
  ADD wa_len TO offset.
  IF offset GE str_len.
    EXIT.
  ENDIF.
ENDDO.
Falls die itab auch länger sein kann als die 132 Zeicheen, die Du anhängen willst, brauchst Du wieder eine Variable für die Länge und muß noch mitrechnen, damit Du nicht mit offset+len über das Ende von str hinaus zugreifen willst, sonst kommt es zum Laufzeitfehler.[/code]

Beitrag von Jens (Specialist / 106 / 0 / 0 ) »
Respekt! Die Lösung ist klasse. Einfach und schnell! Danke.

Hab noch einen Bug gefunden

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
Ich bin mir fast sicher, daß wenn str vom Typ STRING ist und ausnahmsweise auch mal leer sein kann (strlen also 0 ist), die Anweisung

Code: Alles auswählen.

  APPEND str+offset TO itab.
zu einem Dump führt, auch wenn offset 0 ist.

Beitrag von Jens (Specialist / 106 / 0 / 0 ) »
Hi Frank,

nochmals danke. Ich hatte mir eine wesentlich umständlichere Lösung ausgedacht, insofern bin ich mit der Lösung von Dir sehr zufrieden und hab mein Coding weggeschmissen :D

Gruß,
Jens

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3732
Views
5
Antw.
4549
Views
Inhalt interne Tabelle an andere interne Tabelle übergeben
von L0w-RiDer » 30.01.2020 16:28 • Verfasst in ABAP® für Anfänger
4
Antw.
2676
Views
Inhalt erweitertes Langtextfeld PMD in Variable packen
von Tgut » 03.02.2014 15:16 • Verfasst in ABAP® für Anfänger
5
Antw.
4392
Views

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Benutzerdefinierte Felder PSP
vor 6 Tagen von Rabea1103 1 / 2222
Zukunft des ABAP Entwicklers
vor einer Woche von DeathAndPain 14 / 16553
HR in der Zukunft?
vor einer Woche von DeathAndPain 6 / 18424
Analyse abhängiger Objekte zu einem ABAP-Programm
vor einer Woche von MAJOR_TOM gelöst 5 / 16528

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

Benutzerdefinierte Felder PSP
vor 6 Tagen von Rabea1103 1 / 2222
Zukunft des ABAP Entwicklers
vor einer Woche von DeathAndPain 14 / 16553
HR in der Zukunft?
vor einer Woche von DeathAndPain 6 / 18424
Analyse abhängiger Objekte zu einem ABAP-Programm
vor einer Woche von MAJOR_TOM gelöst 5 / 16528

Unbeantwortete Forenbeiträge

Benutzerdefinierte Felder PSP
vor 6 Tagen von Rabea1103 1 / 2222
Spool vereinen OTF und PDF
vor 3 Wochen von anna2205 1 / 15505
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 22189
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 41168