Zeichenkette nach komma holen

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

Zeichenkette nach komma holen

Beitrag von derkano (ForumUser / 3 / 2 / 0 ) »
Hallo Kollegen,
Ich habe ganzen Tag versucht dieses Problem zu lösen. Aber leider habe ich nicht geschafft. Ich bin ganz neu im ABAP-Umfeld. Könnt ihr bitte mir dabei helfen.
Also Ich habe in eine interne Tabelle die Werte gespeichert und will zu den Spaltenname, Information, gehen und von dort den Wert Ort rausholen. Aber in diesem char-wert stehen mehrere Kommas. Ich brauche nur das letztes als ort.
Z.B: Interne Tabelle: it_personal
Information " Spaltename.
Otto,frankfurt " die 1.char Wert
Frank, Meier, Berlin. " die 2. char Wert
Ich brauche nur den Ort. Aber wie gesagt, manchmal gib es ein, manchmal mehrere Komma. Wie kann ich nur den Ort in meinem neuen Feld Ort speichern.
Das kann für euch sehr leicht sein, aber ich habe ganzen Tag damit beschäftigt.
Ich bin dankbar für die Lösung oder Lösungsvorschläge.
Viele Grüße

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


Re: Zeichenkette nach komma holen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Mein Lösungsansatz würde wohl beginnen mit "letztes Wort" im "2. Char Wert".

Ich mach jetzt mal eine ganz simple Lösung für "Frank, Meier, Berlin. " die 2. char Wert:

Code: Alles auswählen.

      DATA: Lv_Nur_Ort TYPE string, 
                         str1 TYPE string, 
                         str2 TYPE string, 
                         str3 TYPE string. 

text = `Frank, Meier, Berlin. `. 

SPLIT text AT ',' INTO str1 str2 str3.
if str3 is not initial.
        lv_nur_ort = str3.
elseif str2 is not initial.
          lv_nur_ort = str2.
elseif str1 is not initial.
          lv_nur_ort = str1.
  ENDIF.


Es ist ein Krampf in diesem Fenster zu schreiben, bei jeder neuem Tastendruck springt das ganze Fenster auf und ab.... deshalb lass ich jetzt meine Text auch so stehen wie erst ist... egals, wie es aussieht.

Folgende Benutzer bedankten sich beim Autor Unit605 für den Beitrag:
derkano


Re: Zeichenkette nach komma holen

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Wenn man davon ausgeht, dass die Zahl der Kommata nicht bekannt ist, taugt diese Lösung nicht viel. Stattdessen machen zwei Lösungen mehr Sinn:

• SPLIT INTO TABLE, letzten Tabellensatz auslesen
• SHIFT .... RIGHT CIRCULAR in Schleife unter Mitzählung der Durchläufe, Abbruch bei erster Stelle = Komma, eins abziehen (ist einfacher als das Untersuchen der letzten Stelle. Dann weiß man, wie viele Stellen ab der erste mnan braucht (Spaces unberücksichtigt).

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Zeichenkette nach komma holen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
ralf.wenzel hat geschrieben:......taugt diese Lösung nicht viel. Stattdessen machen zwei Lösungen mehr Sinn:
Den Zusatz hättest Du Dir auch sparen können.

Ich gehe hier im Forum schon lange nicht mehr von irgendetwas aus. Zu fast jeder Frage müsste ich meisten immer erst noch Gegenfragen stellen. Das spare ich mir aber schon seit langem.

Ich bin ja froh, wenn ich die meisten Fragestellungen überhaupt noch verstehe und dort eine Sinn reinbekomme.

Re: Zeichenkette nach komma holen

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Öhm, der "Zusatz" war kein Zusatz, sondern der Grund für mein Posting. Mag daran liegen, dass ich ein Kind außem Pott bin, aber der Satz sollte niemandem an die Karre fahren, "wir reden so".

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Zeichenkette nach komma holen

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Man könnte auch einfach einen regulären Ausdruck dafür verwenden.
REPORT.

PARAMETERS: p_input TYPE string OBLIGATORY LOWER CASE.

WRITE:/ p_input.
REPLACE REGEX '.*,([^,]*)$' IN p_input WITH '$1'.
WRITE:/ p_input.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zeichenkette nach komma holen

Beitrag von derkano (ForumUser / 3 / 2 / 0 ) »
Ich danke euch von ganzem Herzen.
Ich habe noch nicht probiert, aber mindestens SPILT ist eine sehr hilfreiche Lösung.
Ich danke dir Unit605 für schnelle Lösungsvorschläge und auch die danke ich ralf.wenzel für das Hilfe. Ich habe zwar dein Satz ,taugt diese Lösung nicht viel. Stattdessen machen zwei Lösungen mehr Sinn:, noch nicht verstanden , aber werde gleich die gegebene Lösungen auch von black_adept probieren.

Danke noch mal an alle, die mit gemacht haben.
Viele Grüße

Re: Zeichenkette nach komma holen

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Der Satz ist so gemeint, dass du dir von meinen beiden Lösungen eine aussuchen kannst. Einfacher ist wahrscheinlich die erste mit SPLIT....INTO TABLE, weil du mit nur wenigen Befehlen an den gesuchten Ausdruck kommst. Das sieht dann so aus:

SPLIT lv_suchFeld AT ',' INTO TABLE lt_treffer.
LOOP AT lt_treffer ASSIGNING <treffer>.
ENDLOOP.
WRITE:/ <treffer>. "oder was auch immer du damit vorhast

Hierbei ist lv_suchfeld das Feld mit dem zu trennenden Ausdruck und ein zeichenartiges Feld, <treffer> type string und lt_treffer type table of string.

Die Variante mit dem Regulären Ausdruck ist eleganter, versteht aber nicht jeder (auch nicht jeder, der das mal warten muss), ich vermeide sowas in meinem Coding nach zahlreichen Beschwerden.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Zeichenkette nach komma holen

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
ralf.wenzel hat geschrieben: Die Variante mit dem Regulären Ausdruck ist eleganter, versteht aber nicht jeder (auch nicht jeder, der das mal warten muss), ich vermeide sowas in meinem Coding nach zahlreichen Beschwerden.
So wie ich es gepostet habe würde ich dir sogar recht geben - aber das war auch nur ein (funktionierendes) Beispiel. Aber da man normalerweise seinen Code an komplizierteren Stellen kommentiert, sehe ich keinen Grund keine regulären Ausdrücke zu verwenden. Insbesondere da das in diesem Fall ja wirklich sehr simpel gehalten ist.

Desweiteren muss ich leider gestehen, dass ich deinem Argument schon aus Prinzip nicht folgen mag. Denn letztlich sagt sie folgendes aus:"Etwas das nicht jeder versteht (der das warten muss) darf nicht verwendet werden". Und mit so einer Aussage beginnen doch schon die Probleme.

1.) Wer ist "jeder"? Wirklich jeder? Jeder ABAP-Programmierer von Anfänger bis Profi? Irgendeine Teilgruppe davon?
2.) Wenn ich in einer Sprache etwas entwickle sollte ich die Sprache beherrschen. Und das erwarte ich letztlich auch von anderen Entwicklern. Ich muss ja nicht alles verwenden, wenn mir die Erfahrung fehlt - aber verstehen sollte ich schon das meiste was ich lese.
3.) Wer bestimmt was zu schwierig für Otto-Normalprogrammierer ist? Dass reguläre Ausdrücke hinreichend komplex werden können und teilweise schwer lesbar sind ist (sogar mir) einleuchtend. Aber das obige Beispiel ist doch wirklich simpel und sollte mit maximal 10 Minuten F1-Hilfe sofort entschlüsselbar sein. Wenn sinnvoll dokumentiert auch ohne F1-Hilfe und nur 1 Minute.

Wenn du in Projekten tätig bist, wo die Leute die deine Programme warten nicht in der Lage sind simple Vorgänge nachzuvollziehen muss ich dir zwar recht geben - aber auf so ein schönes Tool allgemein zu verzichten bloß weil in einem Projekt die Fachkompetenz fehlt halte ich für falsch.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zeichenkette nach komma holen

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
Was bist du denn so unausgeglichen? Ich habe nicht gesagt, dass er es nicht verwenden soll, sondern lediglich angemerkt, dass es nicht jeder versteht. Der Alltag in SAP-Projekten ist, dass man da mit internen Entwicklern arbeitet, die einen Programmierstil haben, wie wir ihn noch gelernt haben. SELECT....ENDSELECT und dazwischen wird eine WRITE-Liste aufgebaut. Hatte ich gerade erst. Wenn du solchen Leuten mit OO oder Regex kommst, zeigen die dir nen Vogel. Ich lebe zu einem nicht geringen Anteil davon, Anwendungen zu entwickeln, die solche Internen mangels Kenntnissen in weitergehenden Programmierstilen nicht ausreichen. Ob das daran liegt, dass sie sich um eine Weiterbildung nicht bemühen oder daran, dass der Arbeitgeber sie nicht bewilligt, hängt vom Einzelfall ab und ist eigentlich auch nicht wichtig, denn ihren arbeitstechnischen Alltag kriegen sie ja hin.

Vergiss bitte nicht, dass viele Entwickler da draußen
• Vor Jahren ihre letzte Schulung hatten
• außer ABAP keine Programmiersprache kennen
• mit OO, Regex und anderen (aus ABAP-Sicht) neueren Techniken bisher nicht wirklich in Berührung kamen.

All das ist nicht schlimm, es ist nur nicht gut, das zu ignorieren, weil man dann am Bedarf vorbeientwickelt. Daher schrieb ich: Regex ist eleganter, split into tab aber wesentlich etablierter und verständlicher. Ich habe mehr als einen Kunden mit der Hausregel, dass solche "neueren Techniken" nur im Falle der faktischen Unvermeidbarkeit zu verwenden sind. Gerade habe ich ein paar ALV-Listen gestrickt, und dabei die REUSE-FuBaus verwendet. Der Kunde lebt lieber mit den Einschränkungen dieser Methode als mit einem Coding, den im Hause kein Mensch lesen kann.

Ich werde dabei auch nicht gefragt, ob ich das gut finde. Im Grunde kann ich denen aus der gleichen Codingvorlage auch einen OO-ALV mit allem Zipp und Zapp bauen. Wir reden hier aber über einen Kunden, dem ich erklären muss, dass Sortierung und Summierung nicht mit mir abgestimmt werden müssen, weil ich das nicht codiere, sondern es per Anzeigevariante flexibel gesteuert wird.

Nicht mehr aber auch nicht weniger als das wollte ich zu bedenken geben.

Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
derkano

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Zeichenkette nach komma holen

Beitrag von derkano (ForumUser / 3 / 2 / 0 ) »
Hallo Alle Kollegen,
Erstens ich bin sehr froh, dass ich in IT Bereich bin.
Bei uns gibt es sehr viele hilfbereiche und soziale Kollegen.
Jeder hat seine eigene Art und Weise, das ist aber auch sehr gut.

Ich bin nicht Programmier, oder so zu sagen bin ich neue eingestiegen.

Danke noch mal für Korrektur, Vorschläge und Unterstützung.
Grüß

Re: Zeichenkette nach komma holen

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Hallo Ralf,

so wie du die Rahmenbedingungen im letzten Posting geschrieben hast, kann ich dich dann ja doch verstehen und stimme dir für deinen Fall voll zu.
Ich selber beschränke mich ja auch in vielen Fällen auf bestimmte Techniken.
Allerdings halte ich die "Hausregel" die du dort vorfindest schon für bedenklich. Auf kurze Sicht sicher die einfachste Lösung dafür zu sorgen, dass alle Programme lesbar und vom Kunden selber wartbar sind. Leider wird dabei übersehen, dass SAP selber immer mehr auf neuere Techniken umsteigt. Und wenn man nicht bei einfachen Entwicklungen mal übt mit den Neuerungen klarzukommen wird man über kurz oder lang auf der Strecke bleiben.
Und das regex in diesem Thread ist doch ein schönes Beispiel.
Es ist fast trivial für jemanden mit Erfahrung aber hinreichend komplex um die F1-Hilfe bemühen zu müssen wenn man vorher nie damit gearbeitet hat. Auch wenn derjenige der das sich nun beibringen muss das nicht sofort ( oder vielleicht auch nie ) selber anwenden muss, so weiß er dann ab dem Zeitpunkt wo er sich damit beschäftigt hat, dass es Alternativen gibt.
Das ist etwa vergleichbar mit dem ganzen Thread hier.
derkano hatte am Anfang nicht einmal einen Ansatz für sein Problem. Jetzt hat er mehrere Lösungsmöglichkeiten aufgezeigt bekommen und wird sich wohl oder übel mit der F1-Hilfe zu den Befehlen "SPLIT", "SHIFT" und "REPLACE" auseinandersetzen müssen, wobei er schon im Voraus weiß, dass jeder dieser Befehle letztlich seine Anforderungen erfüllen kann.
In Zukunft also hat er in ähnlich gelagerten Fällen die Wahl und kann (hoffentlich) das zum jeweiligen Problem passendste Verfahren anwenden.
Und das gilt eben auch für die Programmierer deines Hausregelprojektes.
Wenn sie sanft gezwungen würden sich ( allmählich - niemand erwartet Wunder ) mit den Neuerungen zu beschäftigen würden Sie auf längere Sicht davon profitieren.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Zeichenkette nach komma holen

Beitrag von ralf.wenzel (Top Expert / 3921 / 200 / 280 ) »
black_adept hat geschrieben:Allerdings halte ich die "Hausregel" die du dort vorfindest schon für bedenklich.
Ich auch - aber liegt es an mir, diese Regeln zu bewerten?

Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Seite 1 von 1

Vergleichbare Themen

1
Antw.
8428
Views
Komma & Punkt bei Convertierung
von RiffRaff » 10.03.2005 16:50 • Verfasst in ABAP® Core
16
Antw.
1514
Views
Dynpro Eingabe von Zahl mit Komma
von stony007_de » 19.01.2022 08:32 • Verfasst in ABAP® für Anfänger
10
Antw.
3474
Views
Komma etc. in Tabulator in int. Tabelle konvertieren
von macler » 14.08.2006 16:32 • Verfasst in ABAP® Core
9
Antw.
15436
Views
Komma durch Punkt ersetzen
von Barney » 14.07.2015 11:16 • Verfasst in ABAP® für Anfänger
3
Antw.
2422
Views
Excel Benutzereinstellung Komma Punkt
von HH_ABAP » 18.09.2018 09:39 • Verfasst in ABAP® für Anfänger

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
vor 14 Stunden von Bright4.5 1 / 298
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1938
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8541