PDA

View Full Version : WRITE einer externen Datenstruktur in eine Datei



mahones
05-09-11, 13:40
Hallo!

Auch wenn ich zum Thema externe Datenstruktur einiges gefunden habe, so ist meine Fragestellung so noch nicht vorgekommen:

Ich habe eine Datei und eine "dazugehörige" Datenstruktur definiert:

FDATEI1 IF A E K DISK

D DS_DATEI1 E DS EXTNAME(DATEI1)

Des weiteren gibt es eine Datei (Logging), in die ich unter bestimmten Umständen den kompletten Inhalt des aktuellen Satzes der DATEI1 schreiben will (Feld LOGSTRING ist 200A - groß genug).

FLOGFILE IF A E K DISK

C EVAL LOGSTRING = DS_DATEI1
C WRITE LOGFILER

Nun habe ich das Problem, dass die Inhalte nicht "korrekt" in die Datei geschrieben werden, weil in der DATEI1 gepackte Felder enthalten sind - also auch in der Datenstruktur.

Wie kann ich das ändern, so dass in LOGFILE alles schön leserlich ist?

Idee:

C EVAL LOGSTRING = %char(DS_DATEI1) <= funktioniert nicht

Ich möchte eigentlich nicht für DATEI1 eine weitere Datenstruktur definieren, wo ich jedes Unterfeld als gezontes aufführe. Denn es handelt sich in dem Programm um mehr als 1 Datei...

Fuerchau
05-09-11, 13:46
Da ist dann leider Tipparbeit gefragt:

LOGSTRING = F1 + %editc(F2:'X') + ...;

Alternativ kannst du auch %char() verwenden, dann solltst du aber Feldtrenner benutzen:

LOGSTRING = F1 + ';' + %char(F2) + ...;

Alternativ definierst du eine 2. Struktur mit den Feldern als Zoned (am Besten dann beide qualified) und überträgst dann einzeln.
Wenn beide Qualified, geht auch eval-corr.