View Full Version : 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
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.
Genauso arbeite ich auch. Trotzdem sind die Spalten unterschiedlich angeordnet. :(
Welches Release nutzt Du denn?
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.
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.
Vielleicht liegts am Field-delimiter?
CPYTOIMPF FROMFILE(CVTDB2/TESTFIL) TOSTMF('/AS400/test3.csv') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) FLDDLM(';')
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
Vielleicht liegts am Field-delimiter?
CPYTOIMPF FROMFILE(CVTDB2/TESTFIL) TOSTMF('/AS400/test3.csv') MBROPT(*REPLACE) STMFCODPAG(*PCASCII) RCDDLM(*CRLF) FLDDLM(';')
Der Defaultwert von FLDDLM=',' mein EXCEL erwartet ';'
Bei Zahlen mit Komma gibt es einen Konflikt bei ','
Schau mal mit NOTEPAD ins CSV
Ich möchte kein Excel erstellen, sondern eine Textdatei ohne Field delimiter.
Der Defaultwert von FLDDLM=',' mein EXCEL erwartet ';'
Bei Zahlen mit Komma gibt es einen Konflikt bei ','
Schau mal mit NOTEPAD ins CSV
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.
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.
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.