从网上看说内存映射文件的大小在运行期是不能被更改的,是否是这样?
如果我想增加映射文件的内容时,就要在创建的时候创建一个足够大的内存对象,这样如果我用不了这么多空间,保存的文件后面是不是会有一大堆空白的地方?
请大侠指教
如果我想增加映射文件的内容时,就要在创建的时候创建一个足够大的内存对象,这样如果我用不了这么多空间,保存的文件后面是不是会有一大堆空白的地方?
请大侠指教
解决方案 »
- 偶尔看到一则对联,大家鉴赏一下
- winexec 没有执行mysql的导入语句,为什么?
- 自动登陆网站的软件(用idhttp做的),运行报错,请高手帮我看看问题在哪?
- 这段友错吗
- 要学delphi,有那些好书,能给个学习顺序么,有分
- 小弟可怜可用分没有拉,一手绢分,一手给码。5555~~~~~(有意者进来看看)
- 怎样做一个定时备份并自动删除的过期备份的程序,请高手指点!邮箱为[email protected]
- delphi 如何创建组件
- DELPHI中DBGRID如何让显示区域的没有记录的格显示表格线?
- DELPHI初学者的书
- 求delphi2007下组件
- Delphi中使用ListView放动态数据为什么不实时刷新
procedure TForm1.btnCreateClick(Sender: TObject);
var
PText, Ps: PChar;
ErrorID: DWord;
strSource: string;
begin
// 文件句柄
fHandle := CreateFile(PChar('c:\response.txt'), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ, nil, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, 0);
// 用fHandle创建内存映射对象,大小为500字节
MapViewHandle := CreateFileMapping(fHandle, 0, PAGE_READWRITE, 0, 500, 'MapViewTest');
// 获取映射对象的指针地址
PText := MapViewOfFile(MapViewHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0);
// 给字符串变量赋值
strSource := '123fjfjsoijdfoiejflkdsjflsjdfoiejwoijfsjdfljd';
// 将字符串内容复制到映射对象中
StrCopy(PText, PChar(strSource));
// 关闭映射对象和文件句柄
CloseHandle(MapViewHandle);
CloseHandle(fHandle);
end;这个过程对txt文件进行了修改,文本文件的内容为'123fjfjsoijdfoiejflkdsjflsjdfoiejwoijfsjdfljd'后面由很多个空格,就是把500个字符填充满了