ファイルを読み書きできるかチェックするモジュールです。bloadやbsaveなどでHSPエラー12を防ぐためにチェックするのに使えるかなぁと。
ファイルを読み書きできるかチェックするモジュールです。bloadやbsaveなどでHSPエラー12を防ぐためにチェックするのに使えるかなぁと。
#module _FileCheck_#uselib "kernel32"#cfunc _FC_CreateFile "CreateFileA" sptr,sptr,sptr,sptr,sptr,sptr,sptr#cfunc _FC_GetLastError"GetLastError"#func _FC_CloseHandle "CloseHandle" sptr#define GENERIC_READ 0x80000000#define GENERIC_WRITE 0x40000000#define OPEN_EXISTING 0x00000003#define FILE_ATTRIBUTE_NORMAL 0x00000080#define INVALID_HANDLE_VALUE -1#deffunc FileCheck str _fnamefname = _fnamehFile = _FC_CreateFile(fname, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)error = _FC_GetLastError()if hFile != INVALID_HANDLE_VALUE {_FC_CloseHandle hFile}return error#global// stat の値は// http://homepage3.nifty.com/aokura/tips/e000000.html// を参考にしてください。FileCheck "test.txt"if stat == 0{mes "正常終了しました。"}else : if stat == 2 || stat == 3{mes "ファイルが見つかりません。"}else : if stat == 4 || stat == 5{mes "ファイルを開くことができません。"}else : if stat == 32 || stat == 33{mes "ファイルを書き込むことができません。"}