低レベルファイル操作
バイナリファイルをメモリにいっぺんに読込み、メモリからいっぺんに書き込む例。
・VCL
//--- 読込み
int han,len;char *buf;
if((han=FileOpen("file.bin",fmOpenRead))==-1){ERROR;}
len=FileSeek(han,0,2);
FileSeek(han,0,0);
buf=new char[data_len+1];
FileRead(han,buf,len);
FileClose(han);
//--- 書き込み
int han,len;char *buf;
if((han=FileCreate("file.bin"))==-1){ERROR;}
FileWrite(han,buf,len);
FileClose(han);
・WINAPI
//--- 読込み
han=CreateFile("file.bin",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(han!=INVALID_HANDLE_VALUE){
ReadFile(han,&pref,sizeof(pref),&len,NULL);CloseHandle(han);}
//--- 書き込み
han=CreateFile("file.bin",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(han!=INVALID_HANDLE_VALUE){
WriteFile(han,&pref,sizeof(pref),&len,NULL);
CloseHandle(han);}
・古い関数
#include <io.h>
#include <fcntl.h>
#include <dos.h>
//--- 読込み
han=_rtl_open("file.bin",O_RDONLY);
_rtl_read(han,m,サイズ);
_rtl_close(han);
//--- 書き込み
han=_rtl_creat("file.bin",_A_NORMAL);
_rtl_write(han,m,サイズ);
_rtl_close(han);
Back