二进制文件操作 哪位仁兄给个二进制文件操作(写、读)的范例。多谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://community.csdn.net/Expert/topic/4820/4820982.xml?temp=.8072931 var iTextLen,iPicSize :integer; sTextLen,sPicSize :string; sText,sPic :string; pContent :pchar; SrcFile,DestFile :file; //1.写文本文件 //1-1.写文本信息和图象信息的大小,前8个字节。 try AssignFile(SrcFile, sFileFullName); if Not FileExists(sFileFullName) then ReWrite(SrcFile) else Reset(SrcFile, 4); BlockWrite(SrcFile, sTextLen, 4); BlockWrite(SrcFile, sPicSize, 4); CloseFile(SrcFile); except Result :=False; Exit; end; //1-2.写文本信息内容。 try AssignFile(SrcFile, sFileFullName); if Not FileExists(sFileFullName) then ReWrite(SrcFile) else ReSet(SrcFile); BlockWrite(SrcFile, sText, SizeOf(sText), BytesWritten); CloseFile(SrcFile); except Result :=False; Exit; end; //2.写图片文件,图片已保存在fTemp中 //实现相当于文件的拷贝,即将文件追加到已有的二进制文件中 AssignFile(SrcFile, fTemp); AssignFile(DestFile, sFileFullName); Reset(SrcFile, 1); try if not FileExists(sFileFullName) then Rewrite(DestFile, 1) else begin Reset(DestFile, 1); Seek(DestFile, FileSize(DestFile)); end; try repeat BlockRead(SrcFile, pContent, Sizeof(pContent), BytesRead); if BytesRead > 0 then begin BlockWrite(DestFile, pContent, BytesRead, BytesWritten); if BytesRead <> BytesWritten then begin Result := false; Exit; end; end; until BytesRead = 0; except Erase(DestFile); Result := false; Exit; end; finally CloseFile(DestFile); CloseFile(SrcFile); DeleteFile(pChar(fTemp));//保存是否成功都将临时文件删除 end; delphi加载窗体时忽略了一控件,如何再加载窗体时显示忽略的控件 时间段查询 如何分析一个jpeg文件由文件编码得到这个文件的长度。 [高分求助]如何对韩文进行Unicode编码? 网络掉线后更新问题 無法停止的服務? 求算法 编译时出现Access Voilation at address.. 怎样在Delphi6上发布一个基于BDE的数据库应用程序? 需要在delphi中打开coreldraw的矢量图(*.cdr),或photoshp的(*.vi).怎样才能找到合适的控件呢 80分求一段代码(好象我只有80分了)有没有好心人啊!!!!!!! 抓取ASP页面信息的超级难题:(在线等
iTextLen,iPicSize :integer;
sTextLen,sPicSize :string;
sText,sPic :string;
pContent :pchar;
SrcFile,DestFile :file; //1.写文本文件
//1-1.写文本信息和图象信息的大小,前8个字节。
try
AssignFile(SrcFile, sFileFullName);
if Not FileExists(sFileFullName) then ReWrite(SrcFile)
else Reset(SrcFile, 4);
BlockWrite(SrcFile, sTextLen, 4);
BlockWrite(SrcFile, sPicSize, 4);
CloseFile(SrcFile);
except
Result :=False;
Exit;
end;
//1-2.写文本信息内容。
try
AssignFile(SrcFile, sFileFullName);
if Not FileExists(sFileFullName) then ReWrite(SrcFile)
else ReSet(SrcFile);
BlockWrite(SrcFile, sText, SizeOf(sText), BytesWritten);
CloseFile(SrcFile);
except
Result :=False;
Exit;
end; //2.写图片文件,图片已保存在fTemp中
//实现相当于文件的拷贝,即将文件追加到已有的二进制文件中 AssignFile(SrcFile, fTemp);
AssignFile(DestFile, sFileFullName);
Reset(SrcFile, 1);
try
if not FileExists(sFileFullName) then
Rewrite(DestFile, 1)
else begin
Reset(DestFile, 1);
Seek(DestFile, FileSize(DestFile));
end;
try
repeat
BlockRead(SrcFile, pContent, Sizeof(pContent), BytesRead);
if BytesRead > 0 then begin
BlockWrite(DestFile, pContent, BytesRead, BytesWritten);
if BytesRead <> BytesWritten then begin
Result := false;
Exit;
end;
end;
until BytesRead = 0;
except
Erase(DestFile);
Result := false;
Exit;
end;
finally
CloseFile(DestFile);
CloseFile(SrcFile);
DeleteFile(pChar(fTemp));//保存是否成功都将临时文件删除
end;