PDA

View Full Version : Dateiverarbeitung im CL-Programm



K_Tippi
30-08-22, 12:02
Meine Datei in QTEMP kann ich nicht mehr löschen

im mache im CL
dclf file( objdpr ) opnid( p )
crtdupobj obj(objdpr) fromlib( KHBDAT ) objtype( *FILE ) +
tolib( QTEMP ) data( *NO )
DSPOBJD OBJ(%TRIM(&D_ALTNAME)) OBJTYPE(*OUTQ) +
OUTPUT(*OUTFILE) OUTFILE(QTEMP/OBJDPR) +
OUTMBR(*FIRST *REPLACE)
rcvf
close opnid( p )


die monmsg habe ich de Übersichtlichkeit wegen weg gelassen
jetzt wollte ich einen clearpfm bzw dltf machen aber beides geht nicht
auch nach Beendigung des Programms kann ich die Datei in QTEM nicht löschen

Fuerchau
30-08-22, 12:44
Das ist altbekannt.
Der Close wirkt nicht auf implizit per RCVF geöffnete Dateien sondern nur auf explizit geöffnete Dateien (das Kommando dazu finde ich gerade nicht).
Um das zu machen was du brauchst benötigst du 2 CL's.
CLA ruft CLB auf. CLB schließt die Datei beim Return automatisch und CLA kann dann aufräumen.

Ich habe mir da schon mal mit TFRCTL geholfen (Transfer Control ist ein Call auf derselben Aufrufebene ohne Return).
Per Parameter kann ich die Aufrufart prüfen.
Per Default wird RCVF durchgeführt, beim TFRCTL mit anderem Parameter kann ich den RCVF überspringen und aufräumen.

K_Tippi
31-08-22, 12:54
Danke, hab mir damit beholfen, dass ich bei entsprendem monmsg (nach crtdupobj) ein paar Anweisungen überspringe ;-)