簡體   English   中英

使用Delphi從VarArray獲取數據

[英]Getting Data from a VarArray using Delphi

我有一個Web服務,它返回一個Variant我有一個數組,即varArray,想知道如何獲取該varArray的數據。

謝謝您的幫助。

要獲取varArray的內容,必須使用VarArrayLowBoundVarArrayHighBound函數,然后使用循環可以遍歷數組以獲取數據。

試試這個樣本

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;

如果基礎元素類型是其他類型,例如WordInteger等,則很明顯如何進行修改以匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM