Schliessende Leerzeuichen bei Strings (Teil 1)

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!

Schliessende Leerzeuichen bei Strings (Teil 1)

Postby Quinn1225 » Wed Aug 20, 2003 2:04 pm

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. data s type string.
  2. data cf(3) type c.
  3. cf = 11.
  4. s = 11.
  5. if cf = s.
  6.   " niemals erreichbar
  7.  
GeSHi ©

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.
Quinn1225
..
..
 
Posts: 30
Joined: Thu Jan 02, 2003 4:16 pm

Postby Miriam4168 » Wed Aug 20, 2003 2:28 pm

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
Miriam4168
..
..
 
Posts: 10
Joined: Wed Aug 20, 2003 9:28 am

Postby Alva1590 » Wed Aug 20, 2003 2:43 pm

dem kann ich nur zustimmen. Die schliessenden Leerzeichen sind also nur ein weiterer Grund, gut zwischen numerischen und zeichartigen Datentypen zu differenzieren.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm


Return to Tips + Tricks & FAQs

Who is online

Users browsing this forum: No registered users and 13 guests

cron