[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    Hex-Konstante und UCS2

    Hallo,
    kurze Frage: Der Compiler scheint Schwierigkeiten zu haben, Konstanten im Hex-Format mit Strings, die UCS2 sind, zusammen zu verarbeiten:
    Code:
    dcl-c LF const(x'000a');   //unicode utf-16
    dcl-s result ucs2(10000);
    pos = %scan(LF:result);
    
    ==> RNF0353: Der erste und zweite Parameter für %SCAN oder %SCANR haben 
    nicht dieselbe Art.
    Ebenfalls in folgendem Fall habe ich Probleme. Die Funktion um_replaceAllUni erwartet alle Parameter im Format "varucs2":
    Code:
    dcl-c LF const(x'000a');   //unicode utf-16
    dcl-c CR const(x'000d');   //unicode utf-16
    result = um_replaceAllUni(CR:LF:wrapped);
    ==> RNF0660: Implizite Zeichenfolgeumsetzung wird für hexadezimale 
    Literale nicht unterstützt.
    Muss ich wirklich bei jedem Literal eine Konvertierung mit %UCS2 durchführen?

    Dieter

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ich meine, eine Unicodekonstante kann mit u'xxyy' angegeben werden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... das x'000a' sind 2 Zeichen normale char
    folgendes geht bei mir:
    D $ S 1C inz(u'0024')
    das ist dann ein Zeichen Unicode

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Perfekt! Darauf muss man erstmal kommen.
    Vielen Dank.

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zur Klarstellung, da die Antwort von d*b zeitgleich mit meiner gekommen ist: Das mit der Variable funktioniert auch. Aber die Lösung von Baldur ist genau die, die ich suchte: anstatt x' ein u'
    .

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... die Variablendarstellung ist defensiver, die hätte bei der Initialisierung mit x'0024' geknallt (Implizite Zeichenfolgeumsetzung wird für hexadezimale Literale nicht unterstützt')

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Zitat Zitat von BenderD Beitrag anzeigen
    ... die Variablendarstellung ist defensiver, die hätte bei der Initialisierung mit x'0024' geknallt (Implizite Zeichenfolgeumsetzung wird für hexadezimale Literale nicht unterstützt')
    D*B
    So wie es aussieht, kann man gar keine x' Werte in UCS2-Variablen schieben. Man muss u' nehmen, so wie Baldur es schreibt. Ich möchte in meinem Programm auch gar keine große HEXerei einbauen. Mit geht es nur um die Steuerzeichen LF und CR. Da klappt das mit der Konstantendefinition ganz gut.
    Nochmals vielen Dank an Euch beide.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wenn es denn nicht den kleinen Unterschied gäbe: Eine Variable ist kein Konstante.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    ... der Murks in RPG ist halt, dass man Konstanten keinen expliziten Typ geben kann, was keineswegs Nebenwirkungsfrei ist: Auswirkungen auf Rechenregeln, Aufruf von überladenen SQL Procedures, ...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Benannte Konstante in Embedded SQL
    By Tschabo in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 03-11-14, 08:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •