PDA

View Full Version : CPYFRMSTMF



Seiten : [1] 2

alex
15-01-04, 06:50
Ich verzweifel. Habe das Forum durchgeackert, probiert und probiert.. und dennoch nicht gewonnen. Also, hole mir von einem Remoteserver per FTP eine ANSI CSV Datei ab und lege sie erstmal im IFS ab. In dieser CSV Datei sind Sonderzeichen. Per CPYFRMSTMF kopiere ich die Datei auf die AS400. Die empfangende AS400 Datei hat die CCSID 273. Habe alle Möglichkeiten der Parameter im CPYFRMSTMF Befehl ausprobiert. Kein Erfolg. Kann mich bitte nochmal jemand auf den richtigen Weg bringen ?
Gruss Alex

Bruno Jakob
15-01-04, 07:03
Hallo Alex,

probier doch mal den CPYFRMIMPF.

Gruß
Bruno

Fuerchau
15-01-04, 07:40
Das Problem beim CPYFRMSTMF ist, dass ich als Zieldatei nur eine PF ohne CCSID angeben kann (jedenfalls habe ich noch nichts anderes hinbekommen).

Als Alternative kann hier auch FTP verwendet werden:

FTP LOOPBACK öffnet eine lokale FTP-Sitzung. Hier kann ich dann per PUT/GET in eine PF-Datei mit CCSID kopieren. Zur Automatisierung siehe andere Beiträge.

Beim CPYFRMIMPF benötige ich auch eine Beschreibungsdatei (siehe die ausführliche F1-Hilfe des Kommandos). Dann kann auch eine CSV-Datei in eine DDS- bzw. SQL-Datei ausgegeben werden.

Die 3. Alternative ist der Umweg über Excel.
Konvertieren der CSV-Datei in Excel und dann mittels meines Tools Upload400 direkt in die AS/400.

andigoering
15-01-04, 17:23
Alex,

was ist denn dein Problem?

Fehlen "nur" die Umlaute oder "geht garnix"?

Grundsätzlich, wenn einem die Zeit selbst (und seinem Chef) etwas wert ist, sind dafür Tools am Markt erhältlich.

Wie schon erwähnt hat Baldur Fuerchau da etwas entwickelt, bei uns findest Du das direkt auf der AS/400 laufende Tools "iGetExcel" unter http://www.goering.de/d2003/igetexcelprod.php

Schau Dir doch mal diese Dinge an. Wenn es nicht nur eine einmalige Sache ist, armortisiert sich so ein Tool bereits nach wenigen Tagen.

Viele Grüsse

Andi Göring

Fuerchau
15-01-04, 18:42
@Andi

Kann iGetExcel auch CSV-Dateien verarbeiten ?

andigoering
15-01-04, 19:17
Baldur,

CSV verarbeiten wir nicht, ist aber eigentlich eine gute Idee für ein künftiges Feature...

Wir haben das bisher nicht für notwendig erachtet, da man ja bereits mit "Bordmitteln" (CPYFRMIMPF) CSV verarbeiten kann.

iGetExcel ist für .XLS ausgelegt und bietet über ein reines Konvertieren von .XLS nach PF zahlreiche Funktionen, die für .CSV tatsächlich auch interessant wären.

Da aber der Ursprung von .CSV meistens Excel ist, gehe ich in diesem Fall davon aus, daß von Alex auch die .XLS-Datei bereit gestellt werden kann.

Grüße

Andi

Sven Schneider
19-01-04, 16:06
Hallo Alex,
als erstes musst du die IFS-Datei per FTP mit der richtigen CCSID erstellen, damit deine Umlaute/Sonderzeichen stimmen. (ANSI =1252)
Wie's geht steht u.a. hier :

http://www.rlpserver.de/board/showthread.php?s=&threadid=4379

Beim Kopieren in eine PF-Datei so vorgehern wie die andern oben beschrieben.

Eine 3. Möglichkeit führt auch zum Erfolg, hier musst du dich aber um den Satzaufbau selbst kümmern (Verwendung wie intern beschriebene Datei) :
- SRC-File erstellen
(z.B. CRTPF FILE(QTEMP/IMPORT) RCDLEN(132) FILETYPE(*SRC)
- Daten per CPYFRMSTMF in diese Datei kopieren

Danach bleibt es die überlassen, ob du diese Datei
a) direkt in eine phys. Datei kopierst (CPYF FMTOPT(*CVTSRC))
oder
b) mit einem Programm direkt ausliest.

Das sollte problemlos funktionieren.

Sven

alex
27-01-04, 10:47
Wie verhält sich das denn mit einer CSV Datei, die im UTF-8 Format vorliegt ?
Alex

Fuerchau
27-01-04, 11:03
Probiers dann mal mit CCSID 1208 !

Fuerchau
27-01-04, 12:49
Naja, ganz so trivial ist es leider nicht.

Schau mal in folgenden Link:

http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/nls/rbagsucs2.htm

Die Befehle CPYFRMSTMF/CPYFRMIMPF usw. unterstützen hier leider kein UTF-8 (ich habs mit V5R2 probiert).

Aber:

FTP ist da etwas stärker und funktioniert auch lokal:

FTP LOCALHOST

Mittels "type c 1208" kann die ASCII-UTF-8 Codepage eingestellt werden, die PUT-/ GET-Befehle setzen dann weitgends korrekt um.

Achtung:

Wenn z.B. von 1208 in 273 umgesetzt wird, kann es zu Zeichenverlusten kommen !