Como declaro un arreglo en fox??

javier
08 de Enero del 2004
Necesito hacer la validacion de un campo, ese campo solo puede tener 95 valores posibles, yo podria hacer la comparacion de la siguiente manera:

if (var1 <> 1) then
codigo
if(var1 <> 2) then
codigo
......
y asi sucesivamente sin embargo el codigo no estaria optimizado.

Lo que yo quiero hacer es meter los 95 valores dentro de un arreglo y que compare var 1 contra los 95 valores de este arreglo, algo asi como en C++.

int array [95] = { 1, 2, 3, 4, 5, 6, 7, 8, 9......}

Alguien sabe si es posible hacer esto en Fox??? y si es posible como haria la comparacion???

Tambien he pensado meter los 95 valores en una tabla y luego compara este campo con el campo de la tabla de los 95 valores, sin embargo no se como hacer para que se haga la comparacion, es decir como puedo comparar este campo x contra los valores de la tabla uno por uno???

En fin espero que puedan aydarme, se aceptan sugerencias si alguien sabe como hacerlo de otra manera y me lo puede decir se los agradecere mucho, de antemano Gracias.

Javier.

sgomez
08 de Enero del 2004
Para usar una array tenés que declararlo por un lado y llenarlo luego. Por ejemplo:

dimension miarray (95)
for i = 1 to 95
miarray(i)=datoaguardar
next
Para buscar algo dentro del array podés usar el comando ascan. Fijáte en la ayuda, tiene varias formas de ser utilizado, te retorna 0 si no encuentra lo que buscás, sino te retorna el numero de elemento y podés acceder al dato con ese numero como indice.

Si metés los datos en un campo de una tabla podés buscar con el comando locate:

locate for campoabuscar=datoabuscar

O con SQL

select campoabuscar from tablacon95datos where datoabuscar in campoabuscar
y consultando el valor de la variable de sistema _tally sabés cuantos registros trajo la consulta