kennt jemand eine Möglichkeit einen String nach einem Muster(Teilstring) zu durchsuchen und anschließend diesen Teilstring wieder direkt zu speichern?
FIND FIRST OCCURRENCE OF ls_result
IN ls_compare_string
IGNORING CASE " case insensitive
RESULTS DATA(ls_id). " TYPE match_result_tab
Ich habe nur diese Möglichkeit hier gefunden, aber da müsste ich dann ja wieder drüber loopen und mir diesen per Offset suchen :/.
Im Prinzip möchte ich in einem String einen Teilstring finden und diesen eine Variable zuweisen. Geht das irgendwie einfacher als mit meiner Variante mit dem Offset?
Mir ist im Standard dazu nichts bekannt.
Deshalb hab ich mir dafür (vor Jahren schon) eine Utility-Klasse drumherum geschrieben dir mir anstatt dem Suchergebnis die Fundstellen als Texte sowie die Texte der Zwischenräume (bei mehreren Fundstellen) zurückliefert.
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.
Könntest du eventuell anhand von einem Beispiel zeigen was genau dein Ziel ist? Denn " in einem String einen Teilstring finden und diesen eine Variable zuweisen" kann heißen den gesuchten String in einer Variable speichern (was bedeutet du hast den gesuchten Substring bereits (in einer Variable) oder den gesamten Text WENN du den Suchstring findest (dafür brauchst du keine zweite Variable, denn wenn du den Teilstring gefunden hast kannst du ja den gesamten Text speichern)
FIND REGEX ls_result IN ls_compare_string IGNORING CASE SUBMATCHES data(lv_found).
probieren.
In neueren Systemen bitte statt REGEX POSEX verwenden ( die SLIN weist dich schon dezent darauf hin )
P.S. Warum heißen Variablen vom Typ C oder String bei dir eigentlich "ls...."? Abgesehen davon , dass du dir Ralfs Unmut zuziehst, dass du HN verwendest, ist diese Form der HN schon sehr(!) gewöhnungsbedürftig.