[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2002
    Beiträge
    1.122
    Was soll in Byte 6-10 stehen
    5028398445
    Byte 6 = 50
    Byte 7 = 28
    Byte 8 = 39
    Byte 9 = 84
    Byte 10 = 45

    Oder umgerechnet in HEX = 12BB7456D
    6 = 01
    7 = 2B
    8 = B7
    9 = 45
    10 = 6D
    ??

    Gruß
    Ronald

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Im ersten Fall, d.h. dass der gepackete Wert auf die Stellen 6-10 übertragen werden soll, musst Du lediglich die Positionen 6-10 als gepackt numerisches Feld definieren (11P 0) und anschließend den Wert übernehmen:

    Code:
    D DS1             DS                  Inz                    
    D  Alpha1                       28A                          
    D  Dec                          11P 0 Overlay(Alpha1: 6)     
       
      * Alternativ                                                          
    D DS1             DS                  Inz                    
    D  Alpha1                       28A                          
    D  Dec                    6     10P 0   
    
     /Free
         Dec = 5028398445;
    Im zweiten Fall ist es ein bisschen trickier, da Integer-Felder nur 1 (= 3U 0), 2 (= 5U 0), 4 (= 10U 0) oder 8 (= 20U 0) Byte groß definiert werden können. 5028398445 muss in ein 8 Byte großes Feld addiert werden. Da Du jedoch 5 Byte benötigst müssen im Anschluss nur die Stellen/Bytes 4-8 in das eigentliche Text-Feld übernommen werden.

    Etwa so:
    Code:
    D DS2             DS                  Inz                     
    D  Alpha2                       28A                           
    D   Alpha2A                      5A   Overlay(Alpha2: 6)      
                                                                  
    D DS3             DS                  Inz                     
    D  Alpha3                        8A                           
    D  Int                          20U 0 Overlay(Alpha3)   
          
     /Free
        Int     = 5028398445;                     
        Alpha2A = %Subst(Alpha3: 4);
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. Dezimal- Punkt oder Komma!
    By Daniel Ritzmann in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 15-03-02, 16:37

Tags for this Thread

Berechtigungen

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