如何以十六进制打开,编辑和保存二进制文件? 如何以十六进制打开,编辑和保存二进制文件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://download.csdn.net/source/160432 我想以十六进制打开exe文件,把特定范围比如 123H-456H的每个字节做xor运算,然后保存.这样该怎么写?谢谢. //参考如下代码,没有测试过procedure TForm1.Button1Click(Sender: TObject);var vMemoryStream: TMemoryStream; vFileName: string; vStart, vEnd: Integer; vBuffer: string; I: Integer;begin vFileName := 'c:\temp\temp.dat'; vStart := $123; vEnd := $456; SetLength(vBuffer, vEnd - vStart + 1); vMemoryStream := TMemoryStream.Create; try vMemoryStream.LoadFromFile(vFileName); vMemoryStream.Seek(vStart, soFromBeginning); vMemoryStream.Read(vBuffer[1], Length(vBuffer)); for I := 1 to Length(vBuffer) do vBuffer[I] := Chr(Ord(vBuffer[I]) xor $ff); vMemoryStream.Seek(vStart, soFromBeginning); vMemoryStream.Write(vBuffer[1], Length(vBuffer)); vMemoryStream.SaveToFile(vFileName); finally vMemoryStream.Free; end;end; 用ComboBox输入数据的问题,很实际的 怎么在我写的组件里监听其他组件的事件? PowerDesigner中怎么把物理模型导出为HTML的说明文件?急急急!!!! 关于图形设计. TImage控件的怪问题: treeview控件中,它有什么属性可以唯一标识一个树形节点???? 数据显示的问题,应该不难的 Desktop Database数据表中怎么建立外键呢 Delphi中使用SQL,汉字显示不正常。 如何把程序编译为只有一个EXE的文件?(对不起,我的分发光了!) 用屏幕绘图的方式在运行期选择界面上的控件 IdHTTP怎么用
然后保存.这样该怎么写?
谢谢.
var
vMemoryStream: TMemoryStream;
vFileName: string;
vStart, vEnd: Integer;
vBuffer: string;
I: Integer;
begin
vFileName := 'c:\temp\temp.dat';
vStart := $123;
vEnd := $456;
SetLength(vBuffer, vEnd - vStart + 1);
vMemoryStream := TMemoryStream.Create;
try
vMemoryStream.LoadFromFile(vFileName);
vMemoryStream.Seek(vStart, soFromBeginning);
vMemoryStream.Read(vBuffer[1], Length(vBuffer));
for I := 1 to Length(vBuffer) do
vBuffer[I] := Chr(Ord(vBuffer[I]) xor $ff);
vMemoryStream.Seek(vStart, soFromBeginning);
vMemoryStream.Write(vBuffer[1], Length(vBuffer));
vMemoryStream.SaveToFile(vFileName);
finally
vMemoryStream.Free;
end;
end;