Anmelden

View Full Version : FTP: Satzlänge automatisch anpassen?



beebof
21-01-03, 13:48
Hallo,

ich möchte eine ASCII-Datei auf der AS/400 empfangen, die jedoch keine Zeilenumbrüche hat.
Auf der AS/400 soll diese Datei jedoch einen Zeilenumbruch an Stelle 280 haben, um die Datei weiter verarbeiten zu können.

Wie realisiere ich das?

Vielen Dank schon mal im voraus.

will_i
21-01-03, 15:26
Hi,

ich würd's so versuchen:

Die FTP Übertragung ins IFS machen und dann vom IFS ins QSYS kopieren. Beim Kopieren mit CPYFRMSTMF den Parameter ENDLINFMT auf *FIXED setzen, dann schneidet er die IFS Datei auf passende Länge für die Datenbankdatei.
Beim CPYFRMSTMF müssen alle Pfadangaben in IFS Schreibweise sein.

MfG

Frank

beebof
22-01-03, 06:55
ja...vielen Dank für die Antwort http://www.as400-forum.de/ubb/smile.gif

aber ich glaube, ich habe mein Problem gestern nicht genau genug erklärt.

Ich möchte die zu empfangende Datei in eine Datei auf der AS/400 einfügen, die eine feste Länge (280 Zeichen) hat. Also soll er die ersten 280 Zeichen der zu empfangenden Datei in die erste Zeile der Datei schreiben, die nächsten 280 in die zweite und so weiter bis zum Dateiende.

Wie kann ich sowas realisieren?

will_i
22-01-03, 07:41
Hallo nochmal,

doch der Workaround löst dein Problem, vielleicht hab ich das nicht klar gemacht, aber ich habs gerade noch mal probiert, es geht.

1) FTP Übertragung
Je nach dem von welchen System (einer anderen 400 oder einem PC) die Daten kommen, muß das IFS Dateisystem unterschiedlich angesprochen werden. Bei Übertragung von einem PC oder anderen nich 400 System reicht ein cd auf /meinVerzeichnis, um in das IFS Dateisystem zu wechseln. Da Verzeichnis muß vorher auf der 400 erstellt sein (mit mkdir, Kontrolle mit wrklnk). Die Daten die dort per FTP reingestellt werden, haben das geliche Format (mit endloser Satzlänge) wie auf dem Quellsystem.

2) Übernahme in das "normale" AS/400 System
Erstelle ein physische Datei mitels CRTPF und fester Satzlänge:
CRTPF FILE(MYLIB/MYFILE) RCDLEN(280)
Übernehme die Datei aus dem IFS mit CPYFRMSTMF:
CPYFRMSTMF FROMSTMF('/myVerzeichnis/datei') TOMBR('/QSYS.LIB/MYLIB.LIB/MYFILE.FILE/MYFILE.MBR') MBROPT(*ADD) ENDLINFMT(*FIXED) TABEXPN(*NO)

Versuch das mal, bei mir schneidet er die Datei in Satzgerechte Happen, ohne das Informationen verloren gehen. Voraussetzung ist natürlich, das du in die FTP Übertragung eingreifst. Sonst sind die Chancen eher schlecht, einmal abgeschnittene Daten lassen sich nicht wieder herstellen.

Hoffe das hilft.
Schönen Gruß

Frank

beebof
29-01-03, 07:26
Vielen Dank für die Hilfe! http://www.as400-forum.de/ubb/smile.gif Nun klappt alles so, wie ich es möchte. http://www.as400-forum.de/ubb/smile.gif