FoxPro/Visual FoxPro - Error de anidamiento

 
Vista:

Error de anidamiento

Publicado por Willy (76 intervenciones) el 23/05/2006 20:51:43
Leí un articulo en portal fox, sobre ¿Cómo instalar el archivo EXE actualizado sin forzar a los usuarios a cerrar su aplicación?, y me pareció muy bueno, pues lo utilizé y corrió muy bien cuando lo generaba en VFP 8 con Win98, pero ahora lo e generado en VFP 8 pero en win 2000 y lo trato de correr desde win2000, me sale un error:
"Se excedió el nivel permitido de anidamiento o de evaluación de expresión DO"
Quizá han tenido el mismo problema y me puedan ayudar.
Aca le mando el código, agredeceré sus opiniones

Saludos

* Programa Lanzador (genérico).
LOCAL lcExecPath, lcFileName, lcSkeleton, lnFileCount
LOCAL lcExe, ltLatest, lnI
LOCAL ARRAY laFiles(1)
* Toma la ruta del directorio del archivo ejecutable
lcExecPath = JUSTPATH(SYS(16))
* Establece este directorio como predeterminado (Default)
SET DEFAULT TO (lcExecPath)
* Toma la raíz del nombre del archivo ejecutable
lcFileName = JUSTSTEM(SYS(16))
* Crea una matriz con los nombres de los EXEs posibles
lcSkeleton = lcFileName+"??.EXE"
&& lcSkeleton es un archivo comodín
&& para ADIR()
lnFileCount = ADIR(laFiles,lcSkeleton)
* Busca el archive EXE más reciente
lcEXE = ""
ltLatest = {}
FOR lnI = 1 TO lnFileCount
IF FDATE(laFiles(lnI,1),1) > ltLatest
ltLatest = FDATE(laFiles(lnI,1),1)
lcExe = laFiles(lnI,1)
ENDIF
ENDFOR
* Lanza la ejecución del EXE más reciente.
IF NOT EMPTY(lcExe)
DO (lcEXE)
ENDIF
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

Error de anidamiento

Publicado por jd (1 intervención) el 03/03/2016 19:08:03
Aunque este post es un poco viejo, para los que aun no somos desarroladores con varios años de experiencia, les dejo la solución a este problema de Willy que igual me sucedió y me pase buen tiempo analizando el código.

el código que Willy escribió sirve para buscar el ejecutable mas reciente y ejecutarlo, esto sirve para que los usuarios tengan la actualización mas reciente de tu aplicativo, este código debe crearse en un proyecto aparte y compilarlo como un exe por aparte, pero debe guardarse donde están tus ejecutable con todas las versiones.

El error se origina porque al crear este código como exe y guardarlo en la misma carpeta de trabajo, el busca el ultimo exe y el ultimo es el mismo, entonces se crea un anidamiento cíclico, la solución es que después de compilar este código, vuelvas a compilar el ejecutable de tu aplicación, después de eso, tu ejecutable sera el mas reciente y este ejecutara sin problemas

Saludos desde la tierra de lagos y volcanes, Nicaragua
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