我用一个动态数组保存文件数据,然后用WEB SERVICE发走,在DELPHI进行转换时,如果我文件的前4个字节为0,DELPHI就认为是个空数组,数据就发不过

  • 主题发起人 主题发起人 seabelial
  • 开始时间 开始时间
S

seabelial

Unregistered / Unconfirmed
GUEST, unregistred user!
我用一个动态数组保存文件数据,然后用WEB SERVICE发走,在DELPHI进行转换时,如果我文件的前4个字节为0,DELPHI就认为是个空数组,数据就发不过去,请大家帮忙看看是怎么回事情?Delphi为何要做这个判断?(50分)<br />我用一个动态数组保存文件数据,然后用WEB SERVICE发走,在DELPHI进行转换时,如果我文件的前4个字节为0,DELPHI就认为是个空数组,数据就发不过去,请大家帮忙看看是怎么回事情?Delphi为何要做这个判断?
因为一个文件前4个字节为0很正常,那不是根本就不能通过WebService发走?

function ArrayIsNull(PObj: Pointer): Boolean;
var
P: Pointer;
begin
Result := not Assigned(PObj);
if not Result then
begin
P := Pointer(PInteger(PObj)^);
Result := (P = Pointer($0000));
end;
end;
 
动态数组是否为空可用 Length(...) = 0 来判断,
AnsiString 讨论得多,其实在 Delphi 中, 它就是动态数组的一种,
不宜用 0 或者小于0 的坐标的元素来判断。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
后退
顶部