|
28.01.2009, 08:12 | #1 |
MCTS
|
Недавно решал подобную задачу, нужно было размер файла изменить. Используются чистые winapi функции. При этом в файл пишутся те самые нули. Может пригодится :
X++: int handle; ; handle = WinAPI::CreateFile("C:\\Temp\\AX.TXT", #CREATE_ALWAYS, #GENERIC_WRITE); WinAPI::SetFilePointer(handle, 60, 2); WinAPI::SetEndOfFile(handle); WinAPI::CloseHandle(handle); X++: static int SetFilePointer(int _handle, int _lDistanceToMove, int _dwMoveMethod ) { DLL _winApiDLL = new DLL('KERNEL32'); DLLFunction _SetFilePointer = new DLLFunction(_winApiDLL, 'SetFilePointer'); _SetFilePointer.returns(ExtTypes::DWord); _SetFilePointer.arg(ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord, ExtTypes::DWord); return _SetFilePointer.call(_handle, _lDistanceToMove, 0, _dwMoveMethod); } static int SetEndOfFile(int _handle ) { DLL _winApiDLL = new DLL('KERNEL32'); DLLFunction _SetEndOfFile = new DLLFunction(_winApiDLL, 'SetEndOfFile'); _SetEndOfFile.returns(ExtTypes::DWord); _SetEndOfFile.arg(ExtTypes::DWord); return _SetEndOfFile.call(_handle); } Последний раз редактировалось Eldar9x; 28.01.2009 в 08:24. |
|