Letzte 2 Zeichen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Letzte 2 Zeichen

Beitrag von Gast ( / / 0 / 3 ) »
Hallo,

hab folgendes Problem:

ein 12 stelliges feld, das mal so: "123", mal so "12345" oder auch mal "1234567891" befüllt ist, und ich müsste immer die letzten beiden Zahlen wegschneiden, egal wie wieviel buchstaben beinhaltet sind!

ich finde keinen geeigneten befehl dafür, weiss jemand rat?

danke im vorraus

mfg

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


Beitrag von Thomas R. (Expert / 760 / 79 / 35 ) »
Hallo,
1. belegte Länge mit strlen( feld ) feststellen
2. Teilfeldzugriff feld+offset(länge)
MfG
Thomas R.

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »

Code: Alles auswählen.

l_offset = strlen( feld ) - 2.
if l_offset > 0.
  l_last2 = feld+l_offset(2).
endif.
Hope this helps.

Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von Gast ( / / 0 / 3 ) »
das sieht schonmal gut aus, also ich hab die letzten 2 zeichen jetzt!

aber wie lösch ich jetzt die letzten 2 zeichen aus meinem feld weg? so sieht mein code jetzt aus:

Code: Alles auswählen.

l_offset = strlen( wa_t023-matkl ) - 2. 
if l_offset > 0. 
  l_last2 = wa_t023-matkl+l_offset(2). 
endif. 

Beitrag von black_adept (Top Expert / 4131 / 130 / 955 ) »
1.) Es handelt sich um ein Ganzzahlenfeld
feld = feld div 100.

2.) Es handelt sich um ein linksbündig gefülltes Charakterfeld:
Siehe die Postings von Thomas und Haubi

3.) Es handelt sich um ein rechtsbündig gefülltes Charakterfeld

Code: Alles auswählen.

feld+2 = feld(10). 
CLEAR feld(2).     
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Hallo alle zusammen,

hier eine Alternativlösung:

Code: Alles auswählen.

report ztest.
parameters: p_test(12) type c default ' 1234ab'.
at selection-screen output.

shift p_test right deleting trailing space.
shift p_test right by 2 places circular.
clear p_test(02).
shift p_test left  deleting leading space.
mfg dele

Beitrag von Gast ( / / 0 / 3 ) »
[quote="Dele"]hier eine Alternativlösung:[quote]
Warum CIRCULAR, wenn Du dann noch ein zusätzliches CLEAR brauchst?
Wenn schon mit SHIFT (kann gerade bei langen Feldern teurer sein als Offset/Länge direkt zu nutzen):

Code: Alles auswählen.

report ztest.
parameters: p_test(12) type c default ' 1234ab'.
at selection-screen output.

shift p_test right: deleting trailing space,
                    by 2 places.
shift p_test left  deleting leading space.

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Hallo Gast,

stimmt - du hast recht.
Das Coding stammt aus einer Routine, die aus einem Feld variabler Länge die letzten x Zeichen ermitteln soll. Daher der circular. Folgendes Coding tut's auch:

Code: Alles auswählen.

shift p_test right deleting trailing space.
shift p_test right by 2 places.
shift p_test left  deleting leading space.
mfg dele

p.s.
Über Performance habe ich mir ausnahmsweise mal keine Gedanken gemacht. Mir ging's um Ideenaustausch.

Seite 1 von 1

Vergleichbare Themen

9
Antw.
2106
Views
Letzte 10 Zeichen lassen
von autohandel7 » 30.01.2019 09:34 • Verfasst in ABAP® für Anfänger
5
Antw.
1634
Views
Letzte String Zeichen ersetzen
von ichse18577 » 13.11.2019 14:02 • Verfasst in ABAP® für Anfänger
3
Antw.
7882
Views
letzte Zeile
von SAPDIDI » 17.04.2008 10:44 • Verfasst in ABAP® Core
4
Antw.
3552
Views
Letzte Zahlung
von KaMe » 23.03.2007 16:16 • Verfasst in Financials
2
Antw.
1728
Views
Wie letzte Auftragsfertigungsnummer abfangen???
von spooky » 25.06.2008 19:35 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

ADT Installationserror
vor 7 Stunden von sap_enthusiast 1 / 14
Uhrzeit ist leer Abfrage
vor 11 Stunden von a-dead-trousers 3 / 62
Paging bei Datenabholung (API)
vor 11 Stunden von Bright4.5 6 / 351

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

ADT Installationserror
vor 7 Stunden von sap_enthusiast 1 / 14
Uhrzeit ist leer Abfrage
vor 11 Stunden von a-dead-trousers 3 / 62
Paging bei Datenabholung (API)
vor 11 Stunden von Bright4.5 6 / 351

Unbeantwortete Forenbeiträge

ADT Installationserror
vor 7 Stunden von sap_enthusiast 1 / 14
DIN Norm Klassifizierung
vor einer Woche von Radinator 1 / 1198