2009년 7월 7일 화요일

File 쓰기

wf_filewrite ( string as_filepath, blob ablb_file ) return (none)

int li_FileNum, li_x, li_loops
long ll_FileSize, ll_rtn, ll_pos, ll_len, ll_bytes_write
Blob lb_data, lb_dw
String ls_filename

IF FileExists(as_filepath) THEN
    FileDelete(as_filepath)
END IF

ll_FileSize = Len(ablb_file)

IF ll_FileSize > 32765 THEN
    IF Mod(ll_FileSize,32765) = 0 THEN
        li_loops = ll_FileSize/32765
    ELSE
        li_loops = (ll_FileSize/32765) + 1
    END IF
ELSE
    li_loops = 1
END IF

li_FileNum = FileOpen( as_filepath, StreamMode!, Write!, LockWrite!, Replace!)

ll_bytes_write = 0
FOR li_x = 1 to li_loops
    ll_pos = ( li_x - 1 ) * 32765 + 1
    ll_len = ll_FileSize - ll_pos + 1
    ll_bytes_write += FileWrite(li_FileNum, blobmid( ablb_file, ll_pos, ll_len ) )
NEXT

IF ll_FileSize <> ll_bytes_write THEN
    MessageBox( "Error", "Write Error, comp len:" + string( ll_FileSize ) + ", write:" + string( ll_bytes_write ) )
END IF

FileClose(li_FileNum)


댓글 없음:

댓글 쓰기