我的二进制是.dat格式
例如:
已知16进制字符串
0172616E676573616D403136332E636F6D
但我写到二进制文件中用UE读的却是
30 31 37 32 36........我想得到的结果UE读的应该是
01 72 61 6E.......代码如下:try
FS:=TFileStream.Create(sFileName,fmOpenWrite);
sData:='010072616E676573616D403136332E636F6D';
Getmem(cPstr,101);
StrPcopy(cPstr,sData);
iPos:=100;
FS.Position:=(iIndex-1)*100;
FS.WriteBuffer(Pointer(cPstr)^,iPos);
finally
freemem(cPstr);
FS.Free;
end;
例如:
已知16进制字符串
0172616E676573616D403136332E636F6D
但我写到二进制文件中用UE读的却是
30 31 37 32 36........我想得到的结果UE读的应该是
01 72 61 6E.......代码如下:try
FS:=TFileStream.Create(sFileName,fmOpenWrite);
sData:='010072616E676573616D403136332E636F6D';
Getmem(cPstr,101);
StrPcopy(cPstr,sData);
iPos:=100;
FS.Position:=(iIndex-1)*100;
FS.WriteBuffer(Pointer(cPstr)^,iPos);
finally
freemem(cPstr);
FS.Free;
end;
sData: string;
ms: TMemoryStream;
i: Integer;
n: Byte;
begin
sData :='010072616E676573616D403136332E636F6D';
ms := TMemoryStream.Create;
i := 1;
ms.Position := 0;
while i + 1 <= Length(sData) do
begin
n := StrToInt('$' + sData[i] + sData[i+1]);
ms.WriteBuffer(Byte(n), 1);
i := i + 2;
end;
ms.SaveToFile('c:\123456.dat');
ms.Free;
end;