PDA

View Full Version : cpytoimpf codepage für ascii?



Erol
13-06-13, 10:28
Liebe i-Gemeinde,
auch wenn das Thema schon x-mal erörtert wurde, habe ich leider noch keine Lösung gefunden. Ich versuche eine Datei von unserem IBM i Server (V6R1M0) in das IFS zu stellen.

Mit dem Befehl

CPYTOIMPF FROMFILE(QTEMP/TEXT1) TOSTMF('/tmp/test1.txt') MBROPT(*REPLACE) STMFCODPAG(273) STMFAUT(*INDIR) RCDDLM(*CRLF) STRDLM(*NONE)

kann ich mit wrklnk den Text inklusive aller Umlaute lesen, aber in Hex-Modus wird kein ASCII, sondern EBCDIC angezeigt.

Was kann ich tun, um die Datei auch im Windows-Umfeld lesen zu können?

In den Parametern
FROMCCSID
TOCCSID
STMFCCSID
STMFCODPAG
habe ich bereits unzählige Möglichkeiten probiert, leider alle ohne Erfolg.
Weiß jemand einen Rat, wie die Daten unter Windows lesbar sind?
Vielen Dank im Voraus für einen guten Tipp.
Freundliche Grüße
Erol

malzusrex
13-06-13, 10:40
Hi,

gibt es das Dokument schon im Zielverzeichnins ?? Wenn ja einfach mal löschen

Ich nehme immer STMFCCSID(*PCASCII) und lasse den FROMCCSID auf *FILE

Gruß
Ronald

Erol
13-06-13, 10:57
Danke für die schnelle Antwort, diese Option habe ich schon probiert, damit wird in der Zieldatei die CCSID 1252 erzeugt, diese ist in Windows gar nicht und mit wrklnk nur ohne Umlaute lesbar. :-(
Grüße Erol

camouflage
13-06-13, 11:05
Ich nehme an, einen CPYTOSTMF hast du auch schon mal probiert...

malzusrex
13-06-13, 11:20
Hmm,

bei meinem Test hat die Ausgangsdatei die CCSID 273 und im IFS 1252.
Mit WRKLNK und über den Zugriff einer Wndows-Büchse kann ich es immer deutlich lesen...




CPYTOIMPF FROMFILE(QTEMP/TEST) TOSTMF('/temp/test.txt')
MBROPT(*REPLACE) STMFCCSID(*PCASCII) RCDDLM(*CRLF)

Erol
13-06-13, 14:24
vielen Dank für die Antworten,
mit folgenden Befehlen habe ich jetzt immerhin ein lesbares Dokument erzeugen können. Beim CPYFRMIMPF gehen allerdings die Leerzeilen verloren... Vielleicht hat noch jemand eine Idee?

Schöne Grüße
Erol

create table xusrtemp/text8 (line char(512) not null with default) ;

CPYFRMIMPF FROMSTMF('/home/spm/texte/unilink1.txt') TOFILE(XUSRTEMP/TEXT8) MBROPT(*REPLACE) RCDDLM(*CRLF)

CPYTOIMPF FROMFILE(XUSRTEMP/TEXT5) TOSTMF('/tmp/rek/text29.txt') MBROPT(*REPLACE) STMFCODPAG(1252) STMFAUT(*INDIR) RCDDLM(*CRLF) DTAFMT(*FIXED)
STRDLM(*NONE)

Zerberus77
14-06-13, 19:34
Hallo Erol,

ich vermute, dass der NetServer falsch eingestellt ist. 1252 ist die Windows CCSID. Kontrolliere mal via iNav die Einstellungen des NetServers (Systemname-Netzwerk-Server-TCPIP). Rechte Maustaste bei i5/OS NetServer und Eigenschaften. Ich glaub im 2. Reiter isr die CCSID. Wenn nicht 1252, dann auf 'Nächster Start' und dort auswählen.

Änderung wird erst nach neustart des NetServers aktiv (ENDTCPSVR *NETSVR - STRTCPSVR *NETSVR)

MFG Zerberus

Pikachu
14-06-13, 20:56
Probier mal mit Parameter STMFCODPAG(819).

Fuerchau
15-06-13, 09:09
Das Problem ist natürlich die Quell-IFS-Datei. Wenn diese von Windows kommt ist als FROMCCSID natürlich auch 1252 zu verwenden und nicht der IFS-Dateiwert (der natürlich vom NetServer vorgegeben wurde).

Erol
18-06-13, 12:06
vielen Dank allen,
der Fehler lag am SQL-Statement für die Hilfsdatei "create table xusrtemp/text8 (line char(512) not null with default) ;", dadurch waren keine NULL-Werte in der temporären Datei erlaubt, mit "CREATE TABLE XUSRTEMP/TEXT8 (LINE CHAR ( 512)) ;" gab es keine Probleme mehr. :)
Schöne Grüße
Erol