| |
|
|
| Siehe auch: Varianten als nProcs: [...]
string fgc(string fle){
case pCount<1 : return ""
long b=fileSize(fle)
case b<1 : return ""
mem mem=b
long r=blockRead(fle,mem,,b)
string s=char$(mem,,r)
dispose mem
return s
}
string fpc(string fle,s,bool _append){
case pCount<1 : return false
case pCount<2 : s=""
case pCount<3 : _append=false
long l=len(s)
if l=0 {
case _append : return true
long fh=assign(fle)
rewrite fh
close fh
assign fh,""
return true
}
mem mem=l+1
ifnot _append {
string mem#,0=s
blockWrite fle,mem,,l
dispose mem
} else {
long fh=assign(fle)
openrw fh
seek fh,getFileSize(fh)
string mem#,0=s
blockWrite fh,mem,,l
dispose mem
close fh
assign fh,""
}
}
bool unlink(string fle){
casenot fileExists(fle) : return true
long fh=assign(fle)
casenot fh : return true-fileExists(fle)
erase fh
assign fh,""
return true-fileExists(fle)
}
Selbe für mit ohne XPSE in normaler XProfan-Syntax:
proc FGC
PARAMETERS FLE$
IF %PCOUNT<1
RETURN ""
ENDIF
var B&=FILESIZE(FLE$)
IF B&<1
RETURN ""
ENDIF
DECLARE MEM#
DIM MEM#,B&
var R&=BLOCKREAD(FLE$,MEM#,0,B&)
var S$=CHAR$(MEM#,0,R&)
DISPOSE MEM#
RETURN ""+S$
endproc
proc FPC
PARAMETERS FLE$,S$,_APPEND%
IF %PCOUNT<1
RETURN 0
ENDIF
IF %PCOUNT<2
S$=""
ENDIF
IF %PCOUNT<3
_APPEND%=0
ENDIF
var L&=LEN(S$)
IF L&=0
IF _APPEND%
RETURN 1
ENDIF
var FH&=ASSIGN(FLE$)
REWRITE FH&
CLOSE FH&
ASSIGN FH&,""
RETURN 1
ENDIF
DECLARE MEM#
DIM MEM#,L&+1
IFNOT _APPEND%
STRING MEM#,0=S$
BLOCKWRITE FLE$,MEM#,0,L&
DISPOSE MEM#
ELSE
var FH&=ASSIGN(FLE$)
OPENRW FH&
SEEK FH&,GETFILESIZE(FH&)
STRING MEM#,0=S$
BLOCKWRITE FH&,MEM#,0,L&
DISPOSE MEM#
CLOSE FH&
ASSIGN FH&,""
ENDIF
endproc
proc UNLINK
PARAMETERS FLE$
IFNOT FILEEXISTS(FLE$)
RETURN 1
ENDIF
var FH&=ASSIGN(FLE$)
IFNOT FH&
RETURN 1-FILEEXISTS(FLE$)
ENDIF
ERASE FH&
ASSIGN FH&,""
RETURN IF(1-FILEEXISTS(FLE$),1,0)
endproc
|
|
|
| |
|
|