[英]Getting Data from a VarArray using Delphi
我有一個Web服務,它返回一個Variant我有一個數組,即varArray,想知道如何獲取該varArray的數據。
謝謝您的幫助。
要獲取varArray的內容,必須使用VarArrayLowBound
和VarArrayHighBound
函數,然后使用循環可以遍歷數組以獲取數據。
試試這個樣本
var
i : integer;
s : string;
begin
for i := VarArrayLowBound(vArray, 1) to VarArrayHighBound(vArray, 1) do
s:=vArray[i];//copy the the content of the array i element into a string
假設基礎數據類型是Byte
,並且數組是一維的,那么我解決的方法如下:
function GetBytesFromVariant(const V: Variant): TBytes;
var
Len: Integer;
SafeArray: PVarArray;
begin
Len := 1+VarArrayHighBound(vArray, 1)-VarArrayLowBound(vArray, 1);
SetLength(Result, Len);
SafeArray := VarArrayAsPSafeArray(V);
Move(SafeArray.Data^, Pointer(Result)^, Length(a)*SizeOf(a[0]));
end;
如果基礎元素類型是其他類型,例如Word
, Integer
等,則很明顯如何進行修改以匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.