info := "中国南京 ChinaNanJing";
求助:怎么把 字符串info的内容转换为 十六进制的 字节数组?
9 个解决方案
#1
asc码吧?
i:=1 to length(info)
inttohex(ord(info[i]),2)
i:=1 to length(info)
inttohex(ord(info[i]),2)
#2
何为"十六进制的字节数组"?
#3
1楼:我试一试!
2楼: 如 aArr : array[0..1] of byte;
aArr[0] := $10;
aArr[1] := $11;
2楼: 如 aArr : array[0..1] of byte;
aArr[0] := $10;
aArr[1] := $11;
#4
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
str : string;
test : array[0..49] of char;
ByteArr : Array[0..49] of string;
begin
str := '中国南京ChinaNanJing';
Move(str[1],Test[0],Length(str));
for I := 0 to Length(Test)-1 do
begin
ByteArr[I] := IntToHex(ord(Test[I]),2);
end;
for I := 0 to Length(ByteArr)-1 do
self.Memo1.Lines.Add(ByteArr[I]);
end;
这里有个问题,汉字是占2个字节。
#5
这样的话, 根本不用转换, String类型本身就是这样存储的
#6
麻烦大家写点注释在程序里,我对Delphi基本文盲。
5楼:虽然这样也要把String加入到byte[]里去呀,怎么加入进去呢?
5楼:虽然这样也要把String加入到byte[]里去呀,怎么加入进去呢?
#7
举个例子:
var
info : String;
Buf : array of Byte;
begin
info := '中国南京 ChinaNanJing';
ShowMessage (IntToHex(ord(info[1]), 2));
ShowMessage (IntToHex(ord(info[2]), 2));
//复制到一个动态字节数组中
SetLength(Buf, Length(info));
Move(info[1], Buf[0], Length(Info));
ShowMessage (IntToHex(Buf[0], 2));
ShowMessage (IntToHex(Buf[1], 2));
//释放动态数组
Buf := nil;
end;
#8
7楼的是正解,move就可以实现的
var
info : String;
buf:array of byte;
begin
info :='中国南京 ChinaNanJing';
setlength(buf,length(info));
move(info[1],buf[0],length(info));
end;
var
info : String;
buf:array of byte;
begin
info :='中国南京 ChinaNanJing';
setlength(buf,length(info));
move(info[1],buf[0],length(info));
end;
#9
如何查看回复呢?????????????
#1
asc码吧?
i:=1 to length(info)
inttohex(ord(info[i]),2)
i:=1 to length(info)
inttohex(ord(info[i]),2)
#2
何为"十六进制的字节数组"?
#3
1楼:我试一试!
2楼: 如 aArr : array[0..1] of byte;
aArr[0] := $10;
aArr[1] := $11;
2楼: 如 aArr : array[0..1] of byte;
aArr[0] := $10;
aArr[1] := $11;
#4
procedure TForm1.Button1Click(Sender: TObject);
var
I : Integer;
str : string;
test : array[0..49] of char;
ByteArr : Array[0..49] of string;
begin
str := '中国南京ChinaNanJing';
Move(str[1],Test[0],Length(str));
for I := 0 to Length(Test)-1 do
begin
ByteArr[I] := IntToHex(ord(Test[I]),2);
end;
for I := 0 to Length(ByteArr)-1 do
self.Memo1.Lines.Add(ByteArr[I]);
end;
这里有个问题,汉字是占2个字节。
#5
这样的话, 根本不用转换, String类型本身就是这样存储的
#6
麻烦大家写点注释在程序里,我对Delphi基本文盲。
5楼:虽然这样也要把String加入到byte[]里去呀,怎么加入进去呢?
5楼:虽然这样也要把String加入到byte[]里去呀,怎么加入进去呢?
#7
举个例子:
var
info : String;
Buf : array of Byte;
begin
info := '中国南京 ChinaNanJing';
ShowMessage (IntToHex(ord(info[1]), 2));
ShowMessage (IntToHex(ord(info[2]), 2));
//复制到一个动态字节数组中
SetLength(Buf, Length(info));
Move(info[1], Buf[0], Length(Info));
ShowMessage (IntToHex(Buf[0], 2));
ShowMessage (IntToHex(Buf[1], 2));
//释放动态数组
Buf := nil;
end;
#8
7楼的是正解,move就可以实现的
var
info : String;
buf:array of byte;
begin
info :='中国南京 ChinaNanJing';
setlength(buf,length(info));
move(info[1],buf[0],length(info));
end;
var
info : String;
buf:array of byte;
begin
info :='中国南京 ChinaNanJing';
setlength(buf,length(info));
move(info[1],buf[0],length(info));
end;
#9
如何查看回复呢?????????????