예제 #1
0
int LS_VirtualDrive_FileGetLength(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* fileHandle = VirtualFileHandleHandleFromLua(state, args[2]);
	state->PushNumber((lua_Number)drive->FileGetLength(*fileHandle));
	return 1;
}
예제 #2
0
int LS_VirtualDrive_FileRead(LuaState* state)
{
    LuaStack args(state);
	VirtualDrive* drive = VirtualDriveFromLua(state, args[1]);
	VirtualFileHandle* fileHandle = VirtualFileHandleHandleFromLua(state, args[2]);
	long len = luaL_optlong(*state, 3, -1);
	if (len == 0)
		len = (long)drive->FileGetLength(*fileHandle);

	char* buffer = new char[len];
	UINT nr = (UINT)drive->FileRead(*fileHandle, buffer, len);
	state->PushLString(buffer, nr);
	delete[] buffer;
	return 1;
}