怎么把二进制文件已16进制的方式读取到一个String中?
解决方案 »
- delphi 读取xml问题
- 关于字符串的识别问题!
- Filter的一个问题
- 急!!!为什么预览能看见,而打印不出??
- 有关combobox的items的永久保存--(在线等待 ,急)!!
- 如何把在listview中被选中的图片传给image?
- 如何调用网站的时间?
- delphi做VCD播放器(即播放DAT文件)时,怎样调节图像大小啊?
- 继续请教各位前辈:如何将datacontrols中的控件与database相连?
- 在Delphi中调试程序时你喜欢用什么调试工具?那里用常用调试工具的详细说明?调试多层数据库系统时你用什么工具?
- delphi2010 启动时总是报 '''' is not a valid integer value
- 关于COM的问题
const
cBinStrings: array[0..15] of string =
(
'0000', '0001', '0010', '0011',
'0100', '0101', '0110', '0111',
'1000', '1001', '1010', '1011',
'1100', '1101', '1110', '1111'
);
function BinToHex(mBin: string): string;
var
I, J, L: Integer;
S: string;
begin
S := '';
L := Length(mBin);
if L mod 4 <> 0 then
for I := 1 to 4 - (L mod 4) do
mBin := '0' + mBin;
for I := Length(mBin) downto 1 do begin
S := mBin[I] + S;
if Length(S) = 4 then begin
for J := 0 to 15 do
if S = cBinStrings[J] then begin
S := IntToHex(J, 1);
Break;
end;
if Length(S) > 1 then
Result := '0' + Result
else Result := S + Result;
S := '';
end ;
end;
end; { BinToHex }
function HexToBin(mHex: string): string;
var
I: Integer;
begin
Result := '';
for I := 1 to Length(mHex) do
Result := Result + cBinStrings[StrToIntDef('$' + mHex[I], 0)];
while Pos('0', Result) = 1 do Delete(Result, 1, 1);
end; { HexToBin }
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text := HexToBin(Edit2.Text);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit2.Text := BinToHex(Edit1.Text);
end;
比较好的使用MemoryStream.LoadFromFile.
StringBuilder HexStringBuffer = new StringBuilder();
foreach (byte b in byteArray)
{
HexStringBuffer.Append(b.ToString("X2") + " ");
}
String hexString = HexStringBuffer.ToString();
hexString = hexString.Trim();