Array of Byte 如何转化成String类型或OleVariant类型?再加50分! ( 积分: 50 )

  • 主题发起人 主题发起人 bluepro
  • 开始时间 开始时间
B

bluepro

Unregistered / Unconfirmed
GUEST, unregistred user!
Array[0..Len] of Byte 值如下:(0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 128, 152, 255, 255, 5, 128, 84, 40, 9, 1, 0, 255, 3, 255, 255, 255, 255, 255, 16, 56, 59, 174, 113, 4, 220, 81, 134, 4, 208, 91, 136, 4, 92, 97, 116, 4, 80, 102, 4, 36, 112, 170, 68, 113, 142, 4, 93, 125, 132, 4, 28, 127, 159, 164, 143, 4, 162, 69, 176, 102, 8, 60, 188, 94, 4, 76, 190, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
如何转化为String?
程序的目的是要把这个值赋给XMLNode.NodeValue, 然后将XML传给服务端,先开始用TMemoryStream转化为OleVariant类型,然后赋给XMLNode.NodeValue,结果是空的。
哪位大侠帮帮我?
 
Array[0..Len] of Byte 值如下:(0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, 128, 152, 255, 255, 5, 128, 84, 40, 9, 1, 0, 255, 3, 255, 255, 255, 255, 255, 16, 56, 59, 174, 113, 4, 220, 81, 134, 4, 208, 91, 136, 4, 92, 97, 116, 4, 80, 102, 4, 36, 112, 170, 68, 113, 142, 4, 93, 125, 132, 4, 28, 127, 159, 164, 143, 4, 162, 69, 176, 102, 8, 60, 188, 94, 4, 76, 190, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
如何转化为String?
程序的目的是要把这个值赋给XMLNode.NodeValue, 然后将XML传给服务端,先开始用TMemoryStream转化为OleVariant类型,然后赋给XMLNode.NodeValue,结果是空的。
哪位大侠帮帮我?
 
还有一点,转化完的String必须可以还原出 Array[0..Len] of Byte,因为后台服务也得分析保存。
 
s := IntToHex(a, 2);
 
谢谢xianguo!我试试……
 
后台服务是java做的,用java里的函数转化成Stream,再转化回来,好像和我形成的串不一样,郁闷哪!实在不知道怎么办了,救命啊!
 
UCS4StringToWidestring
如:
var u: UCS4String;
begin
SetLength(u, 4);
u[0] := 73

u[1] := 87

u[2] := 64;
//u[3] 视为0, 不做处理
showmessage(UCS4StringToWidestring(u));
end;

下一个问题我不会
 
不行啊!还有人会么?
 
你可以声明一个string,
然后再SetLength 这个string为数组的长度.
最后把这个数组值拷贝到这个string.
 
var i:integer;
s:string;
begin
for i:=0 to len do
s:=s+inttohex(You_array,2);
memo1.lines.add(s);
end;
 
我就是这么写的呀,可是传到java程序里,保存到数据库中再取出,转成串,跟我给他的串不一样
 
直接TMemoryStream.SaveToFile('aaa.dat')
不行吗???
 
delphi中的byte为无符号型,范围为: 1-255
Java中的byte范围为 -128-127
所以你应该确认一下服务端的程序用的什么数据类型?
 
java里是这么写的:
byte[] b = fin.getBytes();
StringBufferInputStream finstream=new StringBufferInputStream(fin);
pstmt.setBinaryStream(1,finstream,b.length);
其中fin是前端我给他传的串
 
java我没用过
不过我知道二进制变换string时会有问题
就是在于string本身会被转换成widestring
而对于二进制的很多情况是没法转回来了(数据出错)
不知道是不是这个问题
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
418
import
I
I
回复
0
查看
843
import
I
后退
顶部