Delphi字节转换字节数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi字节转换字节数组相关的知识,希望对你有一定的参考价值。

procedure TForm1.btn2Click(Sender: TObject);
var
f1:File of byte;
aa:byte;
begin
AssignFile(f1,'2.exe');
try
reset(f1);
seek(f1,300938); //定位到第300938个字节处,位置你可以自己定
read(f1,aa); //读出一个字节,赋值给aa
aa:=$74; //修改aa的值
seek(f1,300938); //重新定位,因为读数据后,指针指向了下一个字节
write(f1,aa); //将修改后的值写回原位
finally
closeFile(f1);
end; //end of try
end;

procedure TForm1.btn3Click(Sender: TObject);
var
f1:File of byte;
bb:byte;
begin
AssignFile(f1,'2.exe');
try
reset(f1);
seek(f1,300939); //定位到第300939个字节处,位置你可以自己定
read(f1,bb); //读出一个字节,赋值给aa
bb:=$31; //修改aa的值
seek(f1,300939); //重新定位,因为读数据后,指针指向了下一个字节
write(f1,bb); //将修改后的值写回原位
finally
closeFile(f1);
end; //end of try
end;

procedure TForm1.btn4Click(Sender: TObject);
var
f1:File of byte;
cc:byte;
begin
AssignFile(f1,'2.exe');
try
reset(f1);
seek(f1,300940); //定位到第300940个字节处,位置你可以自己定
read(f1,cc); //读出一个字节,赋值给aa
cc:=$5c; //修改aa的值
seek(f1,300940); //重新定位,因为读数据后,指针指向了下一个字节
write(f1,cc); //将修改后的值写回原位
finally
closeFile(f1);
end; //end of try
end;

end.

谁能帮我把aa,bb,cc三个字节转换成数组。
就是把这三句代码合成一句代码!

你的代码只读出那个字节又没做别的处理,因此不用Read了。因为你那三个字节都是连续的,因此可以用一个byte数组,如下:
var
F :File;
Buf: array[0..2] of byte;
begin
AssignFile(F, '2.exe');
try
Reset(F,1);
Buf[0]:=$74;
Buf[1]:=$31;
Buf[2]:=$5c;
seek(F,300938);//从300938开始写3个字节
BlockWrite(F, Buf, SizeOf(Buf));
finally
CloseFile(F);
end;
end;
参考技术A procedure TForm1.btn4Click(Sender: TObject);
var
f1:File of byte;
cc:byte;
alist:array of Longint; //新加
blist:array of Longint; //新加
I:integer; //新加
begin
SetLength(aList, 3) ; //新加
SetLength(bList, 3) ; //新加
aList[0]:=300938;
aList[1]:=300939;
aList[2]:=300940; //新加
bList[0]$74;
bList[1]:=$31;
bList[2]:=$5c;
AssignFile(f1,'2.exe');
try
for I := 0 to 3 do //新加
begin

reset(f1);
seek(f1,aList[I]); //修改 //定位到第300940个字节处,位置你可以自己定
read(f1,cc); //读出一个字节,赋值给cc
// cc:=$5c; //修改aa的值
cc:=bList[I]; //新修改
seek(f1,aList[I]); //重新定位,因为读数据后,指针指向了下一个字节
write(f1,cc); //将修改后的值写回原位
end;
finally
closeFile(f1);
end; //end of try
end;

以上是关于Delphi字节转换字节数组的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI如何读取一个图片,保存到字节数组中

字节数组到字符串和向后转换

Delphi XE 字节数组索引

delphi中string如何转换为byte.注意只是byte,不是byte数组!

C# Struct 到字节数组的编组方式与 Delphi 中的打包记录相同

Java将字节数组转换为十六进制字节数组[重复]