[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2009
    Beiträge
    131

    Nicht lesbare Daten nach Read aus dem IFS

    Hallo,

    ich möchte Daten aus einer .csv Datei im IFS lesen. Die eingelesenen Daten werden aber nciht umgesetzt. Was mache ich falsch/was fehlt? Habe mich an den bekannten Beispielen von Scott Klement orientiert. Auch verschiedene Versuche mit den Parametern des Open haben nichts gebracht (O_CCSID/O_TEXTDATA/O_CODEPAGE). Oder ist buf falsch definiert?

    Open der Datei:
    Inp_File = '/CIAN/' + Read_File;
    oflag = O_RDWR + O_CCSID + O_TEXTDATA;
    omode = S_IRWXU + S_IRWXG + S_IRWXO;
    eval fd = open(%trimr(Inp_File) : oflag :
    omode : 500);

    Lesen der Datei:
    eval len = read(fd: %addr(buf): %size(buf));

    Inhalt von buf:
    ‚ä%ÑÁ>È€ñà‚›‚&/ÊÈ`‚›‚&<ãäèê‚›‚&<ãçëè‚
    Ž‚‚›‚è`øÁ‚›‚‚›‚‚
    Ž‚‚›‚‚›‚‚›‚‚
    Ž‚.+( à€€€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+âä+€€€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚èáë耀€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚+!èñã߀€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ë â ñêäê ‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ëçñ&&áꀀ€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ä!+ëñå+áဂ›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+ç.倀€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚â!ñ+å ñäê ‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+âê䀀€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+ <ñ€€€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+î <€€€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+â< €€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+€( à€€€€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚( [!êñä ë ‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚äíêèñà!ëêñ‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚.+€ Ž‚ë& ñ+èáë耂›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ íè!( èñäë‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ <ã ãíᐑ€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ <ñ(&íᐑ€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ ê(ëâá向€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ êá â à‘€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ <âêâ ꐑ€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ åäñâ ꐑ€‚›‚Š•‚›‚àá‚›‚ ë.+ñàá‚
    Ž‚ &<ñ


    Definition buf:
    D buf S 5000


    Danke für Ideen!

    Grüße

    Matthias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    O_CCSID ist schon korrekt.
    Wenn dein Job allerdings auf CCSID(*HEX) steht, weiß das System ja nicht in welche CCSID umgewandelt werden soll.
    Ändere deinen Job auf die benötigte CCSID (z.B. 273), dann sollte es klappen.
    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
    Jun 2009
    Beiträge
    131
    Der Job läuft unter CCSID 500. Ergo sollte das klappen. Der Fehler muß also noch irgendwo anders liegen.

  4. #4
    Registriert seit
    Jun 2009
    Beiträge
    131
    Die Files im IFS haben alle CCSID 819. Der Job läuft unter 500. Wenn ich mir mal einen CHGJOB, Parameter CCSID, anschaue, sehe ich in der Lsite der CCSID's die 819 nicht. Deutet das auf ein Problem mit CCSID 819 hin? Erstellt werden die csv's per CPYTOIMPF mit TOCCSID(*STMF).

  5. #5
    Registriert seit
    Jun 2009
    Beiträge
    131
    Ich bin schon mal ein Stück weiter. Die .csv Files haben CCSID 819, die Daten sind binär gespeichert. Wenn ich jetzt die .csv Datei mit COPY kopiere und dabei die CCSID 500 und Format *TEXT angebe, dann kann ich die Daten offensichtlich lesen. Allerdings muß der open() dann auch mit O_TEXTDATA und O_CCSID (500) gemacht werden.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    Dann stammen die CSV-Daten nicht aus der PC-Welt sondern aus einer anderen AS/400.
    Beim Kopieren von Dateien in das IFS per FTP wird die CCSID aus CHGFTPA gewählt.
    Beim Kopieren über Freigaben (Windows) die Default-CCSID des NetServers.
    Dabei spielt es keine Rolle, welchen Code die Daten tatsächlich haben.
    Man sollte also immer wissen, wie die Daten tatsächlich kodiert sind.

    Lesbar mit Windows Notepad?
    Dann wahrscheinlich 1252 (Voll-ANSI) oder 819 (Teil-ANSI).

    Per CHGATR kann man die CCSID einer IFS-Datei anpassen ohne Codewandlung.
    Ist die Datei mit EDTF auf der AS/400 lesbar?
    EDTF wandelt standardmäßig von der IFS-CCSID in die JOB-CCSID um.
    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

  7. #7
    Registriert seit
    Jun 2009
    Beiträge
    131
    Danke für die Info's! Ja, die Dateien stammen von einer anderen AS/400. Alle haben CCSID 819 und sind mit EDTF lesbar.

  8. #8
    Registriert seit
    Oct 2013
    Beiträge
    171
    Wenn Du O_CCSID bzw. O_CODEPAGE angibst, musst Du auch den 4. Parameter, CCSID oder Codepage, angeben. Als 5. Parameter kannst Du einfach 0 übergeben, das ist dann die Job-CCSID.

    Aber weniger ist oft besser, darum probier's mal so:
    oflag = O_RDWR + O_TEXTDATA;
    fd = open(%trimr(Inp_File) : oflag );

    Wenn das nichts bringen sollte, gib' wieder O_CCSID und den 4. Parameter an, mit der CCSID der IFS-Datei (mit stat() im Pgm herauszufinden).

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.238
    So wie es für mich aussieht, hat die Datei zwar CCSID 819 (ggf. Copy aus Windows/FTP), der Inhalt ist wohl aber die CCSID des Quellsystem (z.B. 273).
    Damit kann keine Codewandlung von 819 nach irgendwas funktionieren.
    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

  10. #10
    Registriert seit
    Oct 2013
    Beiträge
    171
    Das kann nicht sein, Baldur.
    Um 09:33 hat msost geschrieben, dass die Dateien CCSID 819 haben und er sie mit EDTF lesen kann - also stimmt die Codierung. Es kann nur das Lesen im RPG falsch sein.

Similar Threads

  1. Antworten: 11
    Letzter Beitrag: 11-07-14, 10:32
  2. FoxPro Daten nach AS400
    By JürgenG in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-11-02, 09:24
  3. Übergabe von Daten HTTP nach RPGLE
    By Bruno Jakob in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 28-02-02, 12:57
  4. Antworten: 3
    Letzter Beitrag: 25-02-02, 22:27
  5. Daten von AS/400 Modell 236 nach .TXT-File ?
    By ROSTE in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 08-10-01, 08:58

Tags for this Thread

Berechtigungen

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