[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2005
    Beiträge
    22

    Alpha-Feld auf nummerisch prüfen

    Hallo Leute!

    Habe da ein kleines Programm, wobei Ihr mir bitte weiterhelfen könnt:

    Ich bekomme aus einem DSPF ein 3 Alpha-Feld, das ich auf nummerisch prüfen soll.

    Mit dem Befehl: TESTN lässt er auch Werte zu die hinten einen Buchstaben haben (Bsp: 00A, 00Z).

    Was mach ich falsch.

    Habe momentan das Problem mit einer Feldgruppe gelöst, ist aber keine schöne Lösung.

    Dank im Voraus.

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.883

    %CHECK

    Hallo,

    eine solche Prüfung macht man am einfachsten mit der Built-in-Funktion %CHECK oder dem OpCode CHECK.
    Das Ergebnis ist jeweils das erste Zeichen, das nicht in dem angegebenen String ist. Ist also das Ergebnis > Null, sind ungültige Zeichen in dem ursprünglichen String enthalten.

    PHP-Code:
    D Alpha           S              5A   inz('123A5')               
    D Zahlen          C                   const('1234567890'
     *----------------------------------------------------
     /
    Free                                        
        
    If %Check(ZahlenAlpha) = *Zeros;        
           
    Dsply 'Nur Zahlen';                    
        Else;                                     
           
    Dsply 'Ungültige Zeichen';             
        EndIf;
       *
    InLR = *ON;
     /
    End-Free 
    Beim TESTN werden die Buchstaben A-R als numerische Werte interpretiert, da deren Hex-Werte im 1. Halbbyte D, C oder F (Vorzeichen) und im 2.Halbbyte eine Zahl zwischen 0 und 9 haben.

    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

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    22

    Danke

    Danke vielmals für diesen Vorschlag.

  4. #4
    Registriert seit
    Dec 2005
    Beiträge
    22
    Hallo Brigitta!

    Habe deinen Vorschlag gleich ausprobiert und stehe vor folgendem Problem:

    933 c | If (%Check(Zahlen: $VAR)) = *Zeros
    ======> aaaaaa b cccccc
    ======> dddddd
    *RNF0604 20 a 037224 Das Token ist ungültig; das Token wird ignoriert.
    *RNF0312 20 b 037224 Rechte runde Klammer erwartet, aber nicht gefunden.
    *RNF0312 20 c 037224 Rechte runde Klammer erwartet, aber nicht gefunden.
    *RNF5377 20 d 037224 Ende des Ausdrucks erwartet.

    Wir programmieren in unserer Fa. nicht im FREE-Format.

    Dank im Voraus.

  5. #5
    Registriert seit
    May 2002
    Beiträge
    1.121
    hier Birgittas COde in nicht Free-Format
    PHP-Code:
    D Alpha           S              5A   inz('123A5')          
    D Zahlen          C                   const('1234567890')   
                                                                
    c                   If        %Check(ZahlenAlpha) = *Zeros
    c     
    'Nur Zahlen'  Dsply                                   
    c                   
    Else                                    
    c     'Fehler'      Dsply                                   
    c                   
    EndIf                                   
    c                                                           
    c                   
    Eval      *InLr = *On 
    gruß ronald

Similar Threads

  1. Kein Zugriff über QNTC auf Win-Share
    By marmart in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 25-09-07, 15:29
  2. Nachricht CPDB053 beim Zugriff auf Windows Freigabe
    By schatte in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 21-11-06, 11:37
  3. QNTC Zugriff auf CD Laufwerk Fehlerhaft
    By pwrdwnsys in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 07-11-06, 15:34
  4. auf aktiven Job prüfen
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-10-06, 11:07
  5. Status nach Druck nich SAV, sonder Drucker auf END
    By zannaleer in forum NEWSboard Drucker
    Antworten: 6
    Letzter Beitrag: 13-09-06, 10:35

Berechtigungen

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