[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2004
    Beiträge
    181

    CPYTOIMPF Format

    Hallo *ALL,
    ich habe ein Problem mit dem CPYTOIMPF Befehl. Wenn ich eine Datei erstelle und diese per Data Transfer von der I5 auf meinen PC kopiere, sind die Spalten anders als wenn ich die Datei per CPYTOIMPF auf mein Filesystem auf der I5 ablege. Das Problem hängt sicherlich mit der CCSID zusammen und ich habe schon viel probiert, aber die Lösung nicht gefunden. Die I5 ist auf CCSID 65535.

    Gruß,
    Michael

  2. #2
    Registriert seit
    Mar 2003
    Beiträge
    80
    Ich arbeite bei allen CPYxxx-Befehlen mit TOCCSID(*PCASCII)
    Wenn Job CCSID=273 und Datei-CCSID=273
    wird das Streamfile mit CCSID 1252 erstellt und mit Windows-Programmen richtig geöffnet.

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    181
    Genauso arbeite ich auch. Trotzdem sind die Spalten unterschiedlich angeordnet.
    Welches Release nutzt Du denn?

    Zitat Zitat von alfredo
    Ich arbeite bei allen CPYxxx-Befehlen mit TOCCSID(*PCASCII)
    Wenn Job CCSID=273 und Datei-CCSID=273
    wird das Streamfile mit CCSID 1252 erstellt und mit Windows-Programmen richtig geöffnet.

  4. #4
    Registriert seit
    Mar 2003
    Beiträge
    80
    Grübel, Grübel..
    Es ist also keine Zeichenproblem.
    Kannst Du ein kleines Beispiel darstellen?
    Eine Zeile laut Tabelle und eine Zeile aus CSV-Datei.

  5. #5
    Registriert seit
    Mar 2003
    Beiträge
    80
    Vielleicht liegts am Field-delimiter?
    CPYTOIMPF FROMFILE(CVTDB2/TESTFIL) TOSTMF('/AS400/test3.csv') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) FLDDLM(';')

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    181
    Mein Befehl sieht wie folgt aus:

    CPYTOIMPF FROMFILE(BIB/DATEI) +
    TOSTMF('/TMP/DATE.TXT') +
    MBROPT(*REPLACE) STMFCODPAG(*PCASCII) +
    RCDDLM(*CRLF) DTAFMT(*FIXED) STRDLM(*NONE)

    Beispiel:

    PC:
    1234 1 0 1 234
    I5:
    12341 01 2 34

    Gruß,

    Michael

    Zitat Zitat von alfredo
    Vielleicht liegts am Field-delimiter?
    CPYTOIMPF FROMFILE(CVTDB2/TESTFIL) TOSTMF('/AS400/test3.csv') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) FLDDLM(';')

  7. #7
    Registriert seit
    Mar 2003
    Beiträge
    80
    Der Defaultwert von FLDDLM=',' mein EXCEL erwartet ';'
    Bei Zahlen mit Komma gibt es einen Konflikt bei ','
    Schau mal mit NOTEPAD ins CSV

  8. #8
    Registriert seit
    Mar 2004
    Beiträge
    181
    Ich möchte kein Excel erstellen, sondern eine Textdatei ohne Field delimiter.

    Zitat Zitat von alfredo
    Der Defaultwert von FLDDLM=',' mein EXCEL erwartet ';'
    Bei Zahlen mit Komma gibt es einen Konflikt bei ','
    Schau mal mit NOTEPAD ins CSV

  9. #9
    Registriert seit
    Mar 2003
    Beiträge
    80
    Hmm, du bist hier nicht beim Verhör, wo man immer nur das notwendigste preisgibt..
    CPYTOIMPF ist eine Ausgabe im CSV-Format.
    Allerdings ist die Spaltenbreite fixiert, d.h. das Feldtrennzeichen steht immer an der selben Stelle.
    Wenn Du kein Trennzeichen willst, musst Du DTAFMT(*FIXED) angeben.
    Zahlen stehen allerdings linksbündig(minus führend):
    12-> ,12
    -255-> ,-255
    Aus dem Streamfile müsste eigentlich das Problem ersichtlich sein.

  10. #10
    Registriert seit
    Mar 2004
    Beiträge
    181
    Was man mit dem CPYTOIMPF Befehl machen kann ist mir schon klar. Auch wie und warum ich ein Trennzeichen nutze.
    Mein Problem liegt darin, wenn ich ein CPYTOIMPF ausführe die Spaltenformatierung anders als beim Datatransfer per PC ist. Die CCSID sollte identisch sein.

    Zitat Zitat von alfredo
    Hmm, du bist hier nicht beim Verhör, wo man immer nur das notwendigste preisgibt..
    CPYTOIMPF ist eine Ausgabe im CSV-Format.
    Allerdings ist die Spaltenbreite fixiert, d.h. das Feldtrennzeichen steht immer an der selben Stelle.
    Wenn Du kein Trennzeichen willst, musst Du DTAFMT(*FIXED) angeben.
    Zahlen stehen allerdings linksbündig(minus führend):
    12-> ,12
    -255-> ,-255
    Aus dem Streamfile müsste eigentlich das Problem ersichtlich sein.

  11. #11
    Registriert seit
    Mar 2003
    Beiträge
    80
    Welches Format verwendest Du beim Transfer?
    Beim CA gibt es ASCII-Text. Das formatiert in der Art Druckausgabe, das ist nicht vergleichbar mit CSV.
    Bei CSV-Ausgabe mit CA wird die "normale" Formatierung verwendet(Felder sind zwischen den Feldtrennzeichen getrimmt)

  12. #12
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Nimm für solche Fälle dann besser CPYTOSTMF an Stelle des CPYTOIMPF.
    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

Similar Threads

  1. CPYTOIMPF UTF-8
    By alfredo in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 22-12-06, 09:45
  2. cpytoimpf die ...
    By malzusrex in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 14-12-06, 17:20
  3. CPYTOIMPF - Leerzeichen am Ende?
    By mott in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 09-10-06, 11:28
  4. CPYTOIMPF Ergebnis nicht lesbar
    By SUBUIS in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 09-05-06, 09:36
  5. CPYTOIMPF und CCSID
    By Muchi in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 21-04-06, 13:54

Berechtigungen

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