problemas con ruta de acceso a los archivos

860 views
Skip to first unread message

Marcelo Barberis

unread,
Feb 25, 2011, 6:35:49 AM2/25/11
to publicesvfoxpro
Amigos
Le cuento que estuve trabajando toda la noche en el diseño de un sistema y he tenido muchos problemas con las rutas de mis archivos, no me encuentra las rutas de mis carpetas cuando hago correr un formulario para su verificacion.

Sera que me pueden colaborar con algunas lineas de programacion para la localizacion efectiva de mis carpetas de imagenes, skins, clase\imagenes, prgs.
tanto en tiempo de desarrollo como en la aplicación EXE compilada.

Los problemas que he tenido durante varias horas era que cuando hacia correr un formulario para verlo si estaba bien me genera errores como por ejemplo "El path es invalido o ruta de acceso es incorrecto", he agregado una clase a mi form para poner skin y todos los skines estan en una carpeta aparte tambien me genera errores parecido.

estoy usando este codigo temporal mientras estoy desarrollando los form

*!* Ruta de nuestras carpetas
SET DEFAULT TO d:\software\sicg\
SET PATH TO CLASES, DATA, FORMS, GRAFICOS, ICONS, INFORMES, MENUS, PRGS, TAPIZ, REPARADOR, SOURCE, CURSORES, SKINS

&& indicamos ke archivo de procedimiento a abrir
SET PROCEDURE TO funciones.prg ADDITIVE
DO (LOCFILE("System.app"))
DO (LOCFILE("FoxyPreviewer.app"))   

Marcelo

Irlandes 1960

unread,
Feb 25, 2011, 8:37:56 AM2/25/11
to publice...@googlegroups.com
Me han pasado cosas parecidas al instalar, si no incluyo el componente como parte del proyecto, lo cual hace que el exe no lo tenga incorporado, pero nunca en desarrollo, asi que no se si hablamos de lo mismo.
suerrte

Fcocibaeno

unread,
Feb 25, 2011, 8:41:36 AM2/25/11
to publice...@googlegroups.com
Parece ser que la ruta del SET DEFAULT TO no es válida.
El comando SET PATH TO, aunque ingreses una carpeta que no exista, no te avisa (no te da errores)


Jairo Miranda

unread,
Feb 25, 2011, 8:47:50 AM2/25/11
to publice...@googlegroups.com

Has probado con

 

SET  DEFA TO  JUSTPATH(SYS(16))

 

O

 

gcOldDir = SET('DEFAULT') + SYS(2003)

SET DEFAULT TO (gcOldDir)

 

o

 

set defa to sys(5)+SYS(2003)

 

 

Espero sirva

Daniel Sánchez

unread,
Feb 25, 2011, 8:53:29 AM2/25/11
to publice...@googlegroups.com
Como comento en otro foro Luis María, debes usar rutas relativas y no absolutas, como asi un ejemplo
tu path esta en d:\software\sicg\ ok, eso significa que de ahi para adelante tus carpetas lo tienes asi adentro dando una imagen de lo que hablo deberia ser algo así

d:\software\sicg\imagenes
d:\software\sicg\clases
d:\software\sicg\prgs
d:\software\sicg\forms
...
etc
ahora cuando das la ruta de las imagenes deberian quedar así por decir en tu objeto imagen en tu formulario la propiedad picture="imagenes\miimagen.jpg"
si llamo a un form
do form forms\miformulario
...
asi para todo espero que entiendas la idea.

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Antonio.xt

unread,
Feb 25, 2011, 9:45:46 AM2/25/11
to Comunidad de Visual Foxpro en Español

Lo que pasa es que el SET PATH que estableces esta remplazando al SET
DEFAULT, y el fox intenta establecer como directorios de trabajo a las
carpetas CLASE, DATA, FORMS, etc, las cuales no existen, las que
existen son d:\software\sicg\clases, d:\software\data, etc.

La forma en que yo establezco las carpetas al inicio del programa es
la siguiente y me funciona bien en tiempo de diseño y de ejecucion:

sDir = sys({la que te regresa la unidad que de momento no se cual
sea}) + curdir()

clasespath = sDir + "CLASES," + ";"
datospath = sDir + "DATA," + ";"
formspath = sDir + "FORMS," + ";"
.
.
skinspath = sDir + "SKINS"

sPath = clasespath + datospath + etc, etc, etc, hasta + skinspath
SET PATH TO (sPath) o SET PAT TO &sPath (1 de estas 2 opciones)

Intentalo a ver si te funciona !!

Fabricio

unread,
Feb 26, 2011, 10:42:46 AM2/26/11
to Comunidad de Visual Foxpro en Español
Hola Marcelo

En mi experiencia, al comienzo hacía Set Default y Set Path en mis
programas, cuando estaba en diseño todo me funcionaba muy bien,
incluso en el ejecutable, sin embargo en algunas ocasiones no incluía
algunos objetos en mi proyecto, pero mientras tenía disponibles los
fuentes todo marchaba bien, el problema se daba cuando instalaba la
aplicación donde el cliente y ya no tenía disponible los fuentes, el
sistema no encontraba algunos formularios, imágenes, etc.

Después de muchas pruebas y errores logré dar con un método que me
funciona muy bien:

- Tengo una carpeta con los datos tal y a como la configuro donde el
cliente.
- Tengo una carpeta donde están los fuentes de la aplicación, los
skins, las imágenes y demás objetos.
- Tengo un .PRG donde establezco el PATH para que mi proyecto
encuentre los fuentes y me abra el proyecto:
Set Path To \TrawzaS;\TrawzaS\Equipos;\TrawzaS\Equipos\Form;.....;
\TrawzaS\Comun\Report
KeyBoard "Modify Project Equipos{Enter}"
- Tengo un acceso directo para invocar VFP a como sigue:
Destino: C:\Archivos de programa\.....\vfp9.exe -t C:\TrawzaS
\Ruta.prg
Iniciar en: C:\Trawza

Mi acceso directo invoca al VFP desde la carpeta donde tengo los
datos, le hace la llamada al .PRG que me establece el PATH y además me
abre el Proyecto, de esta misma forma tengo configurada cada una de
mis aplicaciones, y tengo un acceso directo para cada una de ellas,
así no me preocupo por estar estableciendo path, ni set default, ni
nada de eso.

En mi aplicación no hago Set Default ni Set Path, mi .EXE contiene
todos los objetos y no necesita buscarlos en ninguna carpeta, para
asegurarme regenero todo el proyecto cada vez que voy a generar
el .EXE.

Cuando acostumbraba a guardar mi path y mi directorio de inicio en la
configuración de VFP me sucedía que en algunas aplicaciones se me
mezclaban los fuentes de otra aplicación, con este método no he vuelto
a preocuparme por nada de eso.

Otra cosa, no me agrada que el VFP me abra los proyectos que tenía
abierto la última vez que lo cerré, me gusta tener el control absoluto
de lo que hago y de los proyectos que abro y cuando los abro.

También tengo un Config.FPW para VFP donde tengo configurado los SET a
como los necesito en tiempo de diseño y un Config.FPW en cada
aplicación con los SET a como los necesito en tiempo de ejecución, el
que queda incluido dentro del .EXE.

Cuando ejecuto mi aplicación verifico si estoy en el entorno de
trabajo de VFP, si es así le hago la llamada a un procedimiento que me
establece los SET a como los necesito en tiempo de ejecución, y al
cerrar la aplicación restablezco los SET a como los necesito en tiempo
de diseño, en cambio si detecto que la llamada fue directamente
al .EXE no hago ninguna de estas dos llamadas.

Este es mi estilo de trabajo y desde hace ya varios años me ha
funcionado muy bien, cada uno tiene su estilo, es cuestión de verle
los pros y los contra a cada uno de ellos y tomar lo bueno para
nuestro beneficio.

Saludos

Fabricio

Norberto

unread,
Feb 26, 2011, 11:26:42 AM2/26/11
to Comunidad de Visual Foxpro en Español
Hola Marcelo
Yo utilizo lo siguiente:
IF VERSION(2)=0 && Runtime
lcPath = (HOME() + ";" ) + (FULLPATH( CURDIR() ) +
";DATA;GRAPHICS;REPORTS;HELP")
ELSE
lcPath = (HOME() + ";" ) + (FULLPATH( CURDIR() )
";MENUS;DATA;PROGS;LIBS;GRAPHICS;FORMS;REPORTS;HELP")
ENDIF
SET PATH TO (lcPath)
SET CLASSLIB TO ceos,compras,formcnt,grdedit ADDITIVE
Norberto
> > Marcelo- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -
Reply all
Reply to author
Forward
0 new messages