求助释放很大的资源文件例如1G甚至10G的文件
如果用资源流释放 内存可能会达到1G 才能释放出来文件
有没有别的办法可以实现?
我听说可以用createfilemapping + findrescoure 但是我不知道怎么写
希望拿为高手能解决下
最好再写个如何操作修改大文件的例子
如果用资源流释放 内存可能会达到1G 才能释放出来文件
有没有别的办法可以实现?
我听说可以用createfilemapping + findrescoure 但是我不知道怎么写
希望拿为高手能解决下
最好再写个如何操作修改大文件的例子
解决方案 »
- 有一个数组去掉连续出现次数少的数字的问题,非高手莫进
- function CountSubstrEx(text,sub:string):Integer; 这个函数中的text是什么类型呀,但可以运行呢? functi
- 刚从vb转过来,问个不是问题的问题,^符号在delphi中表示什么意思?我的书没介绍,一直搞不明白
- 如何将“文本框”的“内容”用“语句”来实现放到“剪切版”上????????????
- 在delphi中调用c#.net编写的xml web service,其中service方法的返回值是dataset.在程序中该如何处理呀?
- 救命呀!!!!
- 我的EXE是不是缺什么,大家帮我看看!
- 在delphi中如何创建线程,终止线程!我是菜鸟!
- 请用delphi的朋友抽空帮我测一测这个dll,谢谢
- 怎样用虚拟键盘输入中文啊!!!DELPHI高手有知道的么????
- 修改外部exe文件的问题..[在线等待]
- 实现控件的移动,改变大小(DELPHI实现)
具体做法看windows核心编程吧,有详细讲述的.
CreateFileMapping 我看了半天还搞不懂 意思
PShareData = ^TSharedData;
TSharedData = record
Count :Word;
FileNames:array[1..MAX_PATH] of ShortString;
end;
var
SharedFile,HFile:THandle;
hMapview:PChar;
opBuf:TOFStruct;//参数
const
SharedFileName='MapTest';begin
try
HFile:=OpenFile('C:\Downloads\mir2install20071220.exe',opbuf,OF_READWRITE);//打开文件获得句柄
if HFile=HFILE_ERROR then
begin
ShowMessage('open file failed!');
Exit;
end; SharedFile:=CreateFileMapping(HFile,nil,PAGE_READONLY, //创建文件映像 只读权限
0,Sizeof(TSharedData),SharedFileName);
if SharedFile=0 then
begin
ShowMessage('mapping file failed code 1!');
Exit;
end;
CloseHandle(hFile); //关闭文件句柄
hFile:=0;
hMapview:=MapViewOfFile(SharedFile,FILE_MAP_READ,0,0,0);//映射文件视图
if(hMapview=nil) then
begin
ShowMessage('mapping view failed code 2!');
Exit;
end;
ShowMessage(hMapview[0]+hMapview[1]);//输出文件第一个字
UnmapViewOfFile(hMapview); //删除文件视图
except
MessageDlg('Error',mtError,[mbOK],0);//这个始终出现
end;
网上找的代码 我自己改了一下 可以读取文件头了 如何读指定位置的字符 和写入指定位置的字符
还有如何把Pchar 保存到文件?