Schliessende Leerzeuichen bei Strings (Teil 1)

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Schliessende Leerzeuichen bei Strings (Teil 1)

Beitrag von DRABAP (ForumUser / 30 / 0 / 1 ) »
Zeichenfelder, also Variablen vom Typ C, können keine schliessenden Leerzeichen enthalten. Genauer gesagt, sie werden immer bis zu ihrer definierten Länge mit Leerzeichen aufgefüllt, diese Leerzeichen werden aber bei fast allen Befehlen ignoriert. Ein guten Beispiel hierfür ist der CONCATENATE. Dieser schneidet quasi die schliessenden Leerzeichen der einzelnen Stücke, die zusammengefügt werden sollen, ab.
Bei Strings hingegen sind die Leerzeichen signifikant, d.h. fast alle Befehle berücksichtigen auch Leerzeichen am Ende eines Strings.
Im Zusammenspiel von Zeichenfeldern und Strings kann es daher manchmal zu einigen Überraschungen kommen. Betrachtet man folgenden Beispiel:

Code: Alles auswählen.

data s type string.
data cf(3) type c.
cf = 11.
s = 11.
if cf = s.
  " niemals erreichbar
endif.
Auch wenn cf und s im Debugger betrachtet gleich aussehen, erkennt man, dass der String ein Blank am Ende hat. Es handelt sich hierbei um das positive Vorzeichen der Zahl 11. Natürlich hat auch das Zeichzenfeld dieses Vorzeichen-Blank. Es tritt allerdings so gut wie nie in Erscheinung. Man sollte also beachten, dass ein String mit einem schliessenden Leerzeichen niemals gleich zu einen Zeichenfeld sein kann.
Dr. ABAP

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


Beitrag von sapish (ForumUser / 10 / 0 / 0 ) »
Hallo Dr. ABAP,

hierzu möchte ich nur noch hinzufügen,
das rein nummerische Werte am besten sowieso
gleich gar nie nicht mit String oder char Typen
behandelt werden sollten.
Dafür gibt es Typen wie Integer.

Nichts für ungut.
Nur ich sehe leider auch immer wieder in sogenannten
Fachbüchern derartige Typisierungen.

MfG

Sapish

Beitrag von Gast ( / / 0 / 3 ) »
dem kann ich nur zustimmen. Die schliessenden Leerzeichen sind also nur ein weiterer Grund, gut zwischen numerischen und zeichartigen Datentypen zu differenzieren.

Seite 1 von 1

Vergleichbare Themen

6
Antw.
3329
Views
Index im where Teil
von kaim77 » 10.09.2014 08:54 • Verfasst in ABAP® Core
1
Antw.
4103
Views
Strings vergleichen
von meocon » 04.09.2008 16:37 • Verfasst in ABAP® für Anfänger
3
Antw.
2630
Views
Ikonen-Strings
von jondahl11 » 15.09.2006 11:23 • Verfasst in ABAP® für Anfänger
1
Antw.
1577
Views
Arbeiten mit INT und STRINGS
von flexed » 11.08.2006 17:45 • Verfasst in ABAP® Core
5
Antw.
2205
Views
Arethmetische Operationen bei SQL im WHERE Teil
von zideshowbob » 26.03.2010 15:17 • Verfasst in ABAP® Core

Über diesen Beitrag


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

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.