Vergleich STRING <> CHAR Feld (Unicode-Problem?)

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

Vergleich STRING <> CHAR Feld (Unicode-Problem?)

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Hallo Zusammen,

habe ein Phänomen, was sich wahrscheinlich durch Unicode erklären lässt, verstehe aber nicht, warum das so ist.
Folgendes Progrämmchen zeigt die Problematik:

REPORT zj_string_char_comp.
DATA:
gv_string TYPE string,
gv_char(8),
gv_length TYPE i.

START-OF-SELECTION.
gv_char = '0123456'.
CONCATENATE gv_string gv_char INTO gv_string.
DESCRIBE FIELD gv_char LENGTH gv_length
IN CHARACTER MODE.

WHILE STRLEN( gv_string ) < gv_length.
CONCATENATE gv_string '#' INTO gv_string.
ENDWHILE.

TRANSLATE gv_string USING '# '.

* 1. Vergleich
IF gv_string = gv_char.
WRITE: / 'GV_STRING = GV_CHAR'.
ENDIF.
* 2. Vergleich
IF gv_string(gv_length) = gv_char.
WRITE: / 'GV_STRING(GV_LENGTH) = GV_CHAR'.
ENDIF.
* 3. Vergleich
IF gv_string(gv_length) cs gv_char.
WRITE: / 'GV_STRING(GV_LENGTH) CS GV_CHAR'.
ENDIF.


Meine Frage wäre, warum ziehen die Vergleiche 1 und 2 nicht? In der Doku zu Unicode steht zwar irgend etwas von Fragmentsicht usw., aber wenn ich doch mit Offset und so zugreife, sollte das doch klappen, oder?

Die Werte sind übrigens im Debugger (auch im HEX-Mode) identisch:

gv_string(gv_length) 3132333435362020
gv_char 3132333435362020

Gruß

ST22

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


Re: Vergleich STRING <> CHAR Feld (Unicode-Problem?)

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
ST22 hat geschrieben:Meine Frage wäre, warum ziehen die Vergleiche 1 und 2 nicht? In der Doku zu Unicode steht zwar irgend etwas von Fragmentsicht usw., aber wenn ich doch mit Offset und so zugreife, sollte das doch klappen, oder?
Ich kann das Coding in Ermangelung eines Systems nicht ausprobieren, aber ich halte es eher für ein Leerzeichenproblem. Kann aber auch gnadenloser Quatsch sein, was ich mir gerade zusammenreime.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von TWP (Specialist / 445 / 0 / 1 ) »
Hallo zusammen,

Ralf hat Recht. Mach mal folgendes:

data: l type i.

l = strlen( gv_string ).
write: / 'gv_string =', l, 'Zeichen lang'.

l = strlen( gv_char ).
write: / 'gv_char =', l, 'Zeichen lang'.

Damit wirst du festellen, das gv_sting 8 Zeichen hat unf gv_char nur 7. Somit geht dein direkter Vergliech nicht.

Lösung: condense gv_string no-gaps.

Gruß

Thomas

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1693
Views
FuBa für Konvert. einer Struktur (UNICODE) in ein Char-Feld
von ernst » 17.06.2005 14:13 • Verfasst in ABAP® Core
6
Antw.
4173
Views
string vergleich
von dimes » 22.05.2006 09:28 • Verfasst in ABAP® Core
2
Antw.
6214
Views
LRAW in String bzw. CHAR konvertieren
von sapdepp » 03.08.2012 13:59 • Verfasst in ABAP® Core
3
Antw.
7685
Views
Type Conversion Char(4) to String
von der_neuling » 27.09.2018 11:23 • Verfasst in ABAP® für Anfänger
0
Antw.
1337
Views
UNICODE-String nach EXECL-2003 (XP) via OLE
von fritz_herma » 05.03.2007 10:36 • 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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 749
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2373
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8959