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 / 4419 / 224 / 1189 ) »
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 / 4117 / 129 / 952 ) »
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.
2583
Views
Löschen des letzen Zeichens
von dawns » 12.01.2007 15:15 • Verfasst in ABAP Objects®
2
Antw.
2625
Views
REPLACE Zeichen löschen funktioniert nicht
von pohlmann-schwarza » 07.08.2008 11:55 • Verfasst in ABAP Objects®
2
Antw.
2966
Views
Zeichen in String löschen mit regulären Ausdrücken
von Erdbaehr » 29.02.2008 13:34 • Verfasst in ABAP® Core
1
Antw.
3275
Views
Wo und Wann? Datum der letzen Mahnung (BSEG-MANDAT)
von Pepper_Phil » 28.08.2012 16:35 • Verfasst in Financials
4
Antw.
2273
Views
Zeichen
von barbara » 29.03.2006 15:54 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Absprung VA02 Position
vor einer Stunde von gs3rr4 3 / 23
OPD Druck im SPOOL
vor 2 Stunden von Manfred K. 1 / 14
Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1801
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2335

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

Absprung VA02 Position
vor einer Stunde von gs3rr4 3 / 23
OPD Druck im SPOOL
vor 2 Stunden von Manfred K. 1 / 14
Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1801
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2335

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 2 Stunden von Manfred K. 1 / 14
Export von Spools in XLSX
vor 5 Tagen von abapamateur 1 / 385
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 987
MS-Word als Editor
letzen Monat von tekko 1 / 4486