Clipper/FiveWin - Generar indices de todos los dbf en una carpeta

 
Vista:

Generar indices de todos los dbf en una carpeta

Publicado por Domingo Segura (2 intervenciones) el 27/06/2005 13:56:00
Buenas,

Quiero hacer un pequeño programa para poder "regenerar" los indices de todos los dbf que tengo en una carpeta. En principio no creia que fuera difícil pero no logro que me compile el programa, el código que tengo pensado es el siguiente:

////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "Directry.ch"

aDirectory := DIRECTORY("*.DBF", "D")

AEVAL( aDirectory, {|aFile|,;
use &aFile alias lista;
index on (cod_art,6) to (SUBSTR(aFile,1,AT(".",aFile)-1)+'.NTX')
})

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

La idea es que si tengo unos archivos Prueba.DBF y Ejemplo.DBF cree los indices como Prueba.NTX y Ejemplo.NTX de una tacada.

¿Alguna idea?

Un saludo

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Generar indices de todos los dbf en una carpet

Publicado por martin (3 intervenciones) el 28/06/2005 14:16:47
Hola ,

dentro del aeval no puedes usar comandos , debes reemplazarlos por
funciones , en tu caso seria mas o menos asi

aeval(aDirectory,{ || dbusearea ( .... <sintaxys> ) , dbcreateindex ( ...<sintaxys> .. ) }

Luego en lugar de usar &aFile seria &aFile[1] , ya que aFile tiene la siguiente estructura :

aFile[1] = nombre del dbf
aFile[2]= tamaño del dbf
aFile[3]= fecha de creacion
aFile[4]= hora de creacion
aFile[5]= atributos del archivo

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Generar indices de todos los dbf en una carpet

Publicado por Domingo Segura (2 intervenciones) el 29/06/2005 13:11:36
Hola,

No logro que me funcione, compila pero me da "Error de argumento: DBUSEAREA"; os pongo el código con el que estoy trabajando:

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "Directry.ch"
aDirectory := DIRECTORY("*.DBF", "D")
AEVAL(aDirectory, {|aFile| dbusearea(aFile[1]), dbcreateindex ((cod_art,6), indice1) })
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar