低レベルファイル操作

バイナリファイルをメモリにいっぺんに読込み、メモリからいっぺんに書き込む例。
・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