[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Nov 2012
    Beiträge
    51

    Ich mach das aber so.

    Und rechne mir die Länge aus (zur Verfügung gestellter Speicherplatz - von iconv übrig gelassener Speicherplatz). Das setze ich dann mit %LEN(variable) = ermittelter Wert.

    Ja, das hatte er schon mal besser. :-)

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.808
    Also hier mal ein simples Beispiel für das API CDRCVRT:

    Code:
    d CDRCVRT         pr                  extpgm('CDRCVRT')       
    d   CCSID1                      10I 0                         
    d   ST1                         10I 0                         
    d   S1                       32766    options(*varsize)       
    d   L1                          10I 0                         
    d   CCSID2                      10I 0                         
    d   ST2                         10I 0                         
    d   GCCASN                      10I 0                         
    d   L2                          10I 0                         
    d   S2                       32766    options(*varsize)       
    d   L3                          10I 0                         
    d   L4                          10I 0                         
    d   FB                          12                            
     
    d ConvParm        ds                                      
    d   CCSID1                      10I 0 inz(273)            
    d   ST1                         10I 0 inz(0)              
    d   S1                         100    inz                 
    d   L1                          10I 0 inz(%size(S1))      
    d   CCSID2                      10I 0 inz(1208)           
    d   ST2                         10I 0 inz(0)              
    d   GCCASN                      10I 0 inz(0)              
    d   L2                          10I 0 inz(%size(S2))      
    d   S2                         100    inz                 
    d   L3                          10I 0 inz                 
    d   L4                          10I 0 inz                 
    d   FB                          12                        
    d   FBCodes                     10I 0 overlay(FB) dim(3)  
     
    c/free             
        S1='ABCÄä';    
        L1 = 5;        
        CDRCVRT(       
             CCSID1    
            :ST1       
            :S1        
            :L1        
            :CCSID2    
            :ST2       
            :GCCASN    
            :L2        
            :S2        
            :L3        
            :L4        
            :FB        
        );             
        return;        
     /end-free
    S2 enthält den UTF8-Code und L3 dann die Länge.
    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
    Feb 2001
    Beiträge
    20.808
    Ich bekomme allerding iConv auch nicht zum Arbeiten.
    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

  4. #4
    Registriert seit
    Nov 2012
    Beiträge
    51

    Hm, ich kann keinen Fehler an Deinem Code entdecken.

    Vielleicht postest Du ihn mal? ;-)

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.808
    Wen meinst du jetzt?
    das 'CDRCVRT' funktioniert, allerdings komme ich auch beim C-API 'iconv' zu keinem Ergebnis.
    Allerdings reicht mir ja das OPM-API .
    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

  6. #6
    Registriert seit
    Nov 2012
    Beiträge
    51

    Ich hatte schon Dich gemeint.

    Wär' ja gelacht, wenn man das nicht zum Laufen brächte.
    Naja, aber irgendeinen Grund muss es ja geben, warum das alle verwenden und nicht das 'CDRCVRT'. (Von dem ich, ich gestehe, noch nie vorher was gehört hatte.)
    Ich nehme an, es gibt einen Performancevorteil bei iconv, wenn man viel übersetzt.

  7. #7
    Registriert seit
    Jan 2005
    Beiträge
    90
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Also hier mal ein simples Beispiel für das API CDRCVRT:

    Code:
    d CDRCVRT         pr                  extpgm('CDRCVRT')       
    d   CCSID1                      10I 0                         
    d   ST1                         10I 0                         
    d   S1                       32766    options(*varsize)       
    d   L1                          10I 0                         
    d   CCSID2                      10I 0                         
    d   ST2                         10I 0                         
    d   GCCASN                      10I 0                         
    d   L2                          10I 0                         
    d   S2                       32766    options(*varsize)       
    d   L3                          10I 0                         
    d   L4                          10I 0                         
    d   FB                          12                            
     
    d ConvParm        ds                                      
    d   CCSID1                      10I 0 inz(273)            
    d   ST1                         10I 0 inz(0)              
    d   S1                         100    inz                 
    d   L1                          10I 0 inz(%size(S1))      
    d   CCSID2                      10I 0 inz(1208)           
    d   ST2                         10I 0 inz(0)              
    d   GCCASN                      10I 0 inz(0)              
    d   L2                          10I 0 inz(%size(S2))      
    d   S2                         100    inz                 
    d   L3                          10I 0 inz                 
    d   L4                          10I 0 inz                 
    d   FB                          12                        
    d   FBCodes                     10I 0 overlay(FB) dim(3)  
     
    c/free             
        S1='ABCÄä';    
        L1 = 5;        
        CDRCVRT(       
             CCSID1    
            :ST1       
            :S1        
            :L1        
            :CCSID2    
            :ST2       
            :GCCASN    
            :L2        
            :S2        
            :L3        
            :L4        
            :FB        
        );             
        return;        
     /end-free
    S2 enthält den UTF8-Code und L3 dann die Länge.

    @Fuerchau: Vielen Dank für dein Beispiel!
    Allerdings wird bei mir aus
    ABCÄä
    der Wert
    â{CdCu

    Kann es vll sein, das es Darstellungsprobleme im RDI gibt?
    Eher nein oder?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.808
    Kontrollieren kannst du den Wert nur mit Hex-Ausgabe:

    41 42 43 C384 C3A4

    Das ist UTF8 ABC
    C384 = 'Ä'
    C3A4 = 'ä'

    ASCII-Zeichen lassen sich in EBCDIC halt nicht anzeigen, da kommt bei mir das selbe raus.
    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

Similar Threads

  1. XML: <?XML version=... ?> und <!DOCTYPE ... >
    By VolkerGrebner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-02-07, 15:38
  2. Webservices, SOAP, XML und Labeldruck
    By vige1000 in forum NEWSboard Linux
    Antworten: 4
    Letzter Beitrag: 21-12-06, 12:56
  3. MCH3402 + Spool
    By Robi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-12-06, 12:12
  4. XML zu einem Port Senden
    By Weki in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 11-09-06, 14:31
  5. Spool -> PDF benötigte Lizenzprogramme
    By cseitz in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 20-06-06, 15:40

Berechtigungen

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