Löschen der letzen beiden Zeichen.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Löschen der letzen beiden Zeichen.

Beitrag von kaim77 (Specialist / 200 / 0 / 0 ) »
Guten Tag,

ich habe ein Zeichenkette Test1','Test2','Test3',

ich möchte die letzten beiden Zeichen ', nach Test3 löschen. Wie kann ich dies machen. Es sollen immer die letzten beiden Zeichen gelöschen werden.

Viele Grüße
Kaim

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


Re: Löschen der letzen beiden Zeichen.

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
hi!

Die Länge des Zeichenfeldes mit STRLEN bestimmen und dann das Ergebnis entsprechend kürzen.

Code: Alles auswählen.

ld_length = strlen( ld_string ) - 2.
ld_string = ld_string(ld_length).
Da dein Beispiel sehr danach ausschaut, dass du mehrere Strings in einen einzigen umwandeln möchtest, habe ich eventuell eine bessere Lösugn für dich:

Code: Alles auswählen.

data lt_string type stringtab.
append 'test1' to lt_string.
append 'test2' to lt_string.
append 'test3' to lt_string.
concatenate lines of lt_string into ld_string separated by ','.
Kommt natürlich ganz auf deinen Anwendungfall an. Ich persönlich verwende derartige Konstrukte sehr häufig, da die tabellenartige Speicherung einen raschen Zugriff auf die einzelnen Komponenten ermöglicht und man am Ende trotzdem sehr schnell einen String daraus basteln kann.

Praktisches Beispiel:

Code: Alles auswählen.

data:
  lt_line type stringtab,
  lt_table type stringtab,
  lt_vbrk type standard table of vbrk,
  ld_string type string.
field-symbols:
  <ls_vbrk> type vbrk,
  <ld_string> type string,
  <la_field> type any.
refresh lt_table.
loop at lt_vbrk assigning <ls_vbrk>.
  refresh lt_line.
  do.
    assign component sy-index of structure <ls_vbrk> to <la_field>.
    if sy-subrc ne 0.
      exit.
    endif.
    append initial line to lt_line assigning <ld_string>.
    <ld_string> = <la_field>. "Hier braucht man eventuell noch eine etwas genauere Typumwandlung
  enddo.
  append initial line to lt_table assigning <ld_string>.
  concatenate lines of lt_line into <ld_string> separated by '|'.
endloop.
concatenate lines of lt_table into ld_string separated by cl_abap_char_utilities=>cr_lf.
Damit kann man eine Interne Tabelle für den Export in eine Datei aufbereiten.
Großer Vorteil von dieser Lösung: Man muss sich nicht mit OFFSET und LÄNGE innerhalb des Strings herumschlagen.
Außerdem fällt die Prüfung weg ob man die erste Zeile/Spalte verarbeitet oder nicht. (',Test' vs. 'Test,')

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag (Insgesamt 2):
LegxisAlexity

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.

ECC: 6.18
Basis: 7.50

Re: Löschen der letzen beiden Zeichen.

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Alternativ gäbe auch die Möglichkeit die letzten Zeichen mittels eines regulären Ausdrucks zu entfernen.

Code: Alles auswählen.

replace regex `..$` in ??? with ``
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Löschen der letzen beiden Zeichen.

Beitrag von skump123 (ForumUser / 1 / 0 / 0 ) »
Danke ADT und black_adept - Beides sehr hilfreiche Antworten!

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2411
Views
Löschen des letzen Zeichens
von dawns » 12.01.2007 15:15 • Verfasst in ABAP Objects®
2
Antw.
2481
Views
REPLACE Zeichen löschen funktioniert nicht
von pohlmann-schwarza » 07.08.2008 11:55 • Verfasst in ABAP Objects®
2
Antw.
2718
Views
Zeichen in String löschen mit regulären Ausdrücken
von Erdbaehr » 29.02.2008 13:34 • Verfasst in ABAP® Core
2
Antw.
13115
Views
Erstes Zeichen einer Zeichenkette löschen
von GAST » 21.10.2004 09:39 • Verfasst in ABAP® Core
1
Antw.
3110
Views
Wo und Wann? Datum der letzen Mahnung (BSEG-MANDAT)
von Pepper_Phil » 28.08.2012 16:35 • Verfasst in Financials

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

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141