PDA

View Full Version : Problem beim lesen IFS Dateien



PGMR
06-10-03, 11:44
Hallo,

ich habe eine RPG Prozedur erstellt, welche mit den C API's open(), read() und close() eine Datei, die ins IFS reingestellt wurde ausließt und Zeile für Zeile als Array zurückliefert.
Das funktioniert soweit auch sehr gut.
Mein Problem ist, dass die Sonderzeichen wie Ö,Ü,Ä etc. nicht umgesetzt werden!
Kann mir dabei einer weiterhelfen?

Vielen Dank!

Mfg S.B.

Fuerchau
06-10-03, 11:51
Prüfe mal die CCSID deines Job's, sie darf nicht auf 65535 stehen.

Du kannst auch >fopen(MyFile, "r, ccsid=273")< probieren.

Ansonsten schau mal bei http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/apis/open.htm nach den weiteren Parametern zum Thema CCSID nach.

Aber warum verwendest du nicht CPYFRMSTMF ?

PGMR
06-10-03, 15:02
Hallo Herr Fuerchau!

Den Befehl CPYFRMSTMF wollte ich nicht verwenden,
damit ich einzelne Zeilen direkt im IFS verarbeiten kann,
z.B. um zu erkennen von wem kommt diese Datei, denn der Dateiname ist leider nicht aussagekräftig!
Ich wollte vermeiden erst eine DB Datei zu erstellen und die dann auszulesen damit es eine einfache Prozedur bleibt ohne PF! Wäre aber auch nicht so schlimm!

Ich habe mal den Job auf 273 geändert, hat aber auch nicht funktioniert!
Ich habe leider keine Info's zu fopen() gefunden.
Mit welchen Parametern definiere ich in RPG denn den Prototypen für die Funktion fopen()?

malzusrex
06-10-03, 15:37
schau mal hier (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/books/c4156071.pdf) nach. da müsstest du alles finden was du brauchst.

gruss ronald

Fuerchau
06-10-03, 17:02
Auch mit CPYFRMSTMF bleibt die Sache einfach.

1. DDS-Datei mit 1 Format, 1 Feld mit z.b. 512 Länge
2. CPYFRMSTMF in die PF-Datei
3. RPG-Programm die Datei per IP (Input Primary) verarbeiten

Einfacher gehts nun wirklich nicht.
Den CPY.. und CALL des RPG's packst du in ein CLP.

Die maximale Länge des Feldes kannst du natürlich auch größer angeben.
Ausserdem kannst du mit DSPPFM prüfen, ob die Zeichenumsetzung erfolgreich war.
Ggf. bei der Option STMFCODPAG mit *PCASCII versuchen, da die IFS-datei vielleicht in ASCII statt ANSI erstellt wurde.