[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Das ist doch kein Problem!
    Die Sonderzeichen in dem String werden alle entweder mit dem OPCode XLATE oder mit der Built-in-Funktion %XLATE auf ein nicht zulässiges Sonderzeichen konvertiert. Dann wird entweder mit dem OPCode SCAN oder der Built-In-Funktion %SCAN geprüft, ob dieses Zeichen im String vorkommt.
    ... und fertig. Maximal 5 Code Zeilen

    PHP-Code:
    D Text            S            256A   Varying      
                                                       
    D Ungueltig       S              4A   inz
    ('!;.?')  
    D Ersetzen        S              4A   inz('****')
     *----------------------------------------------
    /
    Free                                                  
       Text 
    = %XLate(UngueltigErsetzenText);        
       If %
    Scan('*'Text) > *Zeros;                       
          
    //Ungültige Zeichen
       
    Else;
          
    //Nur gültige Zeichen                                     
       
    EndIf;                                 
    /
    End-Free 
    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

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Naja, weniger Code ist das auch nicht.
    Aber im Free-Format kann man auch noch abkürzen:

    If %Scan('*': %XLate(Ungueltig: Ersetzen: Text) ) > *Zeros;
    :
    endif;
    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
    Oct 2005
    Beiträge
    42
    Hallo,

    Danke für eure Antworten, werde es jetzt gleich direkt mal einbauen. Die Funktion XLATE war mit bisher noch nicht bekannt.

    Mit wenig Code meinte ich eigentlich das Array, hier kann ich ja wieder mit einer Konstanten arbeiten.

    Gruß

    Marcel

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Welches Array ?

    Auch beim Check kann ich mit einer Konstanten und einem Befehl arbeiten:

    %CHECK (Check Characters)
    %CHECK(comparator : base {: start})
    %CHECK returns the first position of the string
    base that contains a character that
    does not appear in string
    comparator. If all of the characters in base also appear in

    comparator
    , the function returns 0.
    The check begins at the starting position and continues to the right until a
    character that is not contained in the comparator string is found. The starting
    position defaults to 1.
    The first parameter must be of type character, graphic, or UCS-2, fixed or varying
    length. The second parameter must be the same type as the first parameter. The
    third parameter, if specified, must be a non-float numeric with zero decimal
    positions.

    Also:
    D Gueltig 36A inz('ABCD.....)

    if %check(Gueltig:Text) > 0;
    => Fehler
    endif;

    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

  5. #5
    Registriert seit
    Oct 2005
    Beiträge
    42
    das ist mir bewusst, hab ich ja auch gemacht. Aber ich wollte ja die ungültigen Zeichen erfassen und nicht die gültigen. Deshalb fiehl ja die Funktion CHECK raus.

    Gruß

    Marcel

Similar Threads

  1. Antworten: 4
    Letzter Beitrag: 11-08-06, 11:26
  2. Quersumme mit SQL abfragen
    By behmer in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 03-08-06, 09:53
  3. Ebene der Rekursion abfragen
    By zannaleer in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 24-07-06, 11:57
  4. Textdatei im IFS hat Sonderzeichen
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-06-06, 15:59

Berechtigungen

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