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

Ü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.

Vergleichbare Themen

Index im where Teil
von kaim77 » 10.09.2014 08:54
Strings vergleichen
von meocon » 04.09.2008 16:37
Arethmetische Operationen bei SQL im WHERE Teil
von zideshowbob » 26.03.2010 15:17
Dynamischer Methodenaufruf (Teil 327)
von Icke0801 » 30.04.2022 08:28
Teil-Warenausgang zur Lieferung
von nama » 23.05.2007 15:17