Ver la Versión Completa : Arreglos
Alguien me puede ayudar con respecto a la sintaxis del procedure VarClear(var V : Variant); lo cual necesito para limpiar un arreglo que se crea con el VarArrayCreate..!!!
roman
18-09-2003, 21:01:29
No entiendo bien cuál es tu duda. VarClear "desasigna" el "variant".
VarClear(V) es lo mismo que V := Unassigned
Por favor especifica un poco más.
// Saludos
TablaBoletos esta declarada como variant;
Creo un arreglo en el cual guardo valores de 1 .. count (n) , pero necesito limpiarlo o borrarlo cada vez que se crea ya que me marca el siguente error: 6532ORA-06532; Subscript outside of limit cuando lo hago 10 veces consecutibvas...
TablaBoletos := VarArrayCreate([1, lista.Items.count], varVariant);
for i := 1 to lista.Items.count do
tablaboletos[i] := lista.items[i - 1];
Espero haya sido mas explicito...
Saludos.!!!
delphi.com.ar
19-09-2003, 00:09:19
Primero quiero decirte que soy partidario de evitar utilizar tipos Variant, y segundo que no se que es lo que quieres hacer pero no me parece lógico sacar los datos de un tipo "TString" a algo mas primitivo para trabajarlos, vos sabrás.
Con VarClear limpias la variable completa... no limpias cada item del array!!.. es como si fuera un puntero apuntado a 0.
Si lo que quieres es limpiar los valores de cada item del array, puedes hacer algo como lo que te escribo aqui:
procedure VarArrayClear(AValue: Variant);
var
lBound,
hBound,
i: Integer;
begin
if not VarIsArray(AValue) Then
raise Exception.Create('Invalid Variant Type');
lBound := VarArrayLowBound(AValue, 1);
hBound := VarArrayHighBound(AValue, 1);
for i := lBound to hBound do
AValue[i] := Null;
end;
Saludos!
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.