[NEWSboard IBMi Forum]
  1. #1
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392

    Konvertierung DEC nach CHAR

    Hallo allerseits,

    ich steh gerade auf dem Schlauch.
    Wie konvertiere ich eine Zahl in eine Zeichenkette mit führenden "0" so wie DIGITS bei SQL?
    Und das nicht per MOVE sondern als Funktion in RPGLE.

    Bsp
    wenn x dec(5,0) den Wert 42 hat, soll
    eval s = funktio(x) "00042" geben.

    MOVE oder DS möchte ich nicht nehmen, da das Programm dadurch unhandlich wird.

    Hat jemand eine Idee?

    Gruß
    Christian

  2. #2
    Registriert seit
    May 2002
    Beiträge
    1.121
    Moin

    PHP-Code:
    d Alpha           s              5                           
    d NumFeld         s              5  0                        
                                                                 
    c                   
    Eval      Alpha = %EditCNumFeld 'X' 
    Das 'X' ist nirgendwo dokumentiert. (ich habs bis jetzt jedenfalls net gefunden)


    Gruß Ronald

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Herzlichen Gückwunsch zu meinem 5000. Beitrag.
    Falls du Interesse an der Stunde hast, ruf einfach an. Ich rufe auch gerne zurück.

    Die Lösung, die ich auch benötigte, war leider nicht ganz trivial, dann allerdings ganz einfach.

    %editw ist hier die Lösung !

    evalr s = %editw(x:'0_____');
    (_ = Leerzeichen)

    Wo ist der Trick ?
    Um führende Nullen zu bekommen, kann man mit der "0" die Signifikanz einschalten, allerdings gilt dies erst für das nachfolgende Zeichen, so dass diese Stelle trotzdem leer bleibt.
    Die nachfolgenden Leerzeichen (pro Digit eins) bereiten den Wert nun auf, der allerdings genau 1 Stelle zu groß ist !
    Das wird nun durch den "evalr" (rechtsbündig) wieder ausgeglichen.
    Sollte das Zielfeld aus irgendwelchen Gründen doch größer sein, muss man sich mit %subst behelfen:

    eval s = %subst(%editw(x:'0_____'):2:5);

    @Ronald
    Ich benötigte eine Aufbereitung in der Form "+0000000.00", die in COBOL ja standard ist, in RPG aber Schwierigkeiten bereitet. Dazu funktioniert dann mein obiger Weg.
    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
    Jul 2005
    Beiträge
    15
    Hallo cbe,

    hast du es schon mal mit der Buildin-Funktion %editc versucht?
    Beispiel:
    Ergebnis = %editc(NumFLD:'X')
    Im Ergebnis sollte jetzt linksbündig das gewünschte Ergebnis stehen.

    Viel Erfolg
    mdhl

  5. #5
    Registriert seit
    May 2002
    Beiträge
    1.121
    @furchau

    okay, wenns mit vorzeichen sein soll, dann mit %EDITW.
    ohne vorzeichen finde ich %EDITC halt schöner!

    Gruß Ronald

  6. #6
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Klasse, den Parameter "X" bei editc hatte ich nicht gefunden, jetzt gehts, vielen Dank!

    @fuerchau: das kommt gleich in meine Tip-Sammlung, brauche ich bestimmt mal.

  7. #7
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Zitat Zitat von Fuerchau
    Herzlichen Gückwunsch zu meinem 5000. Beitrag.
    wirklich beeindruckend!
    Du lässt uns aber auch keine Chance, Dich einzuholen, weil Du immer so flott eine Antwort hast ;-)

  8. #8
    Registriert seit
    Oct 2004
    Beiträge
    53
    wie wäre es mit xlate und eine umsetzung von blanks nach '0' ?

    Mach ich zumindest so, imo die einfachste lösung.

Similar Threads

  1. Konvertierung nach Graphic --> CCSID Problem
    By codierknecht in forum NEWSboard SAP
    Antworten: 32
    Letzter Beitrag: 09-02-18, 13:00
  2. RTF-DCA Konvertierung
    By agutenbru in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 22-08-06, 16:00
  3. CHAR in Zoned umsetzen RPG
    By Wissbegierig in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 29-11-05, 13:11
  4. Konvertierung von Character nach Integer
    By mott in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 15-11-04, 09:20
  5. SQL Update Num mit Char
    By spiceisnice in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 01-11-04, 21:01

Berechtigungen

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