[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    May 2002
    Beiträge
    1.122
    Hi,

    also ich schmeiße mir in solchen Fällen die Zeichen alle raus.
    Das ' wird durch '' (2 mal das ' hintereinander) in der Konstante definiert
    PHP-Code:
    d Such            c                   '°^''#' 
    d Ersatz          c                   ''       
    ...
    c                   Eval      Text = %XLateSuch Ersatz Text
    Hoffe das hilft weiter
    Gruß
    Ronald

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Ungültige Zeichen in einem Eingabefeld können da nur kleiner X'40' (*BLANK) sein.
    Hier hilft ggf. eine kleine RPGLE-Funktion, die einfach alle Zeichen kleiner *BLANK eliminiert.

    Ein Hochkomma ist eigentlich ein gültiges Zeichen.

    d ReplaceChar pr 255 varying
    d SourceFld 255 varying const

    d ReplaceChar pi 255 varying
    d SourceFld 255 varying const

    d Count 10I 0
    c/free
    for Count = 1 to %length(SourceFld)
    if %subst(SourceFld:Count:1) < *blank;
    %subst(SourceFld:Count:1) = *blank;
    endfor;
    return SourceFld;

    Mittels "MyFld = ReplaceChar(MyFld);" kannst du alle ungültigen Zeichen eliminieren.
    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
    Sep 2003
    Beiträge
    91
    danke - das mit " ' wird durch '' (2 mal das ' hintereinander) " hilft mir auch für die Zukunft weiter

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Dies gilt übrigens für fast alle Sprachumgebungen:
    CLP/CMD's
    RPG/LE
    SQL
    MS-DOS-Befehle
    Unix-Kommandos
    u.v.m.
    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
    Sep 2003
    Beiträge
    91
    danke - muss ich testen - arbeite nicht mit free RPG, aber versuche ich mal um zusetzen - melde mich wenn es geklappt hat - danke

  6. #6
    Registriert seit
    May 2002
    Beiträge
    1.122
    im nicht Free sieht es auch nicht viel anders aus...
    PHP-Code:
    c                   For       Count1 to %LenSourceFld )          
    c                   If        %SubStSourceFldCount1) < *Blanks 
    c                   
    Eval      %SubStSourceFldCount1) = *Blanks 
    c                   
    EndIf                                            
    c                   EndFor                                           
    c                   Return    SourceFld 
    Gruß
    Ronald

  7. #7
    Registriert seit
    Sep 2003
    Beiträge
    91


    bei mir funktioniert es einfach nicht !

    C*** ungültige Zeichen entfernen
    C 1 DO 30 I
    C*** Fehlerbehandlung
    C IF %SUBST(Anschrift:I:1) < *BLANK
    C EVAL %SUBST(Anschrift:I:1) = *BLANK
    C ENDIF
    C ENDDO

    Es kann nur so sein, das der Wert nicht kleiner *BLANK ist oder ?
    hilfe

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.748
    Per Debugger (STRDBG) kannst du dir den Inhalt auch mal Hex anzeigen lassen:

    eval Anschrift:x

    Alternativ ist dies auch per SQL möglich:

    select hex(Anschrift) from myfile
    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

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    Mit DSPPFM kannst du dir den Inhalt der Datei ansehen und dabei mit F10 die "Hexadezimalwerte anzeigen".

  10. #10
    Registriert seit
    Sep 2003
    Beiträge
    91
    das ist wirklich interresant

    habe für den Test wirklich, nur den defekten Datensatz in der Testdatei
    wenn ich mir diesen mit upddta anzeigen möchte - kommt der Fehler
    "Aufgefundener Satz enthält ungültige Daten" (wie oben beschrieben)

    mit DSPPFM

    folgende Anzeige mit DSPPFM F10

    D3C5D6FF D3404040 LEO L

    jetzt kommt - im Pgm kann er keinen Wert finden der "kleiner *Blank" ist
    - jetzt kommst

    wenn ich RUNQRY auf die Datei mache und den Wert per copy und paste
    in die Variable mit EVAL einfüge, (beim debbugen) und dann EVAL ANS:X
    EVAL lan1:x
    D3C5D63F D3404040 40404040 40404040 - LEO.L (woher kommt der Punkt?)

    und dann findet er auch den Wert kleiner *BLANK eben "3F"

    Verstehe ich einfach nicht

  11. #11
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    Ein X'FF' macht beim UPDDTA anscheinend auch Probleme.

Similar Threads

  1. AS/400 Daten in Excel
    By Neelix in forum NEWSboard Windows
    Antworten: 7
    Letzter Beitrag: 12-03-19, 13:06
  2. Daten aus IFS-Senden
    By nico1964 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 27-11-13, 20:14
  3. Antworten: 3
    Letzter Beitrag: 25-02-02, 23:27
  4. PC Daten auf AS/400 sichern ???
    By muadeep in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 18-02-02, 22:15
  5. AS/400-Daten in Outlook
    By horst in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 04-10-01, 21:44

Berechtigungen

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