2012-10-10 7 views

답변

5

varArray의 내용을 가져 오려면 VarArrayLowBoundVarArrayHighBound 함수를 사용해야하며 루프를 사용하여 배열을 반복하여 데이터를 가져올 수 있습니다.

기본 데이터 타입 Byte이라고 가정이 샘플

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 
+0

변수 "s"에 ShowMessage를 주려고했는데 빈 값이 반환되었습니다. –

+0

배열의 데이터 유형 (문자열, 정수, 부동 소수점)은 무엇입니까? – RRUZ

+0

WebService에서 오류가 발생했음을 해결하기 위해 웹 메일을 보냈습니다 ... 감사합니다. –

0

을 시도하고, 상기 어레이는 1 차원 즉, 방법 I은 다음과 같이 인 해결할 :

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 등등. 일치하도록 수정하는 방법을 분명히해야합니다.