Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-01-2010
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Error al buscar archivo que si existe

Buen medio dia a todos...

Les cuento un error curioso, va... digo curioso porq no se porq ocurre...

Veamos... hice un programa que inicialmente verifica la existencia de un archivo de configuracion: conf.ini. Si no lo encuentra da un mensaje de error y cierra la aplicacion.

Para leer la ubicacion del archivo hago lo siguiente:
Código Delphi [-]
if not fileexists(ExtractFilePath(Application.ExeName) + 'conf.ini') then
begin
 showmessage('Aplicacion Dañada!');
 application.terminate;
end;

El tema es que tengo 2 PC's con Windows XP, en la PC1 lo tengo funcionando muy bien al programa, lo abro sin problemas.
Pero en PC2 me paso que bien lo instale, funcionaba, y dsp dejo de funcionar dandome el error de aplicacion dañada.

En ambas PC's esta en la ruta: "c:/archivos de programa/sistema"
y existe el archivo.

En PC2 ahora que no funcionaba, lo que hice fue copiarla a la carpeta al escritorio, y se ejecuto correctamente.

Pienso q el problema no es por el largo de la ruta, ya que estando en el escritorio la ruta seria algo asi:
"c:/documents and settings/usuario/escritorio/sistema"
La cual es mucho mas larga.

Y lo que mas extraño me parece es que no tiene virus, y estoy usando una cuenta administrador.

Alguna idea de porque puede estar ocurriendo esto?

Desde ya muy agradecido!

{Saludos}
Responder Con Cita
  #2  
Antiguo 22-01-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿No es posible que el "default path" de la aplicación sea otro?.. o sea que se este ejecutando mediante un acceso directo donde se definió otro default path.

Te recomendaría sera algo mas amplio en el mensaje de error, por ejemplo:

Código Delphi [-]
ShowMessageFmt('Aplicacion Dañada!'#13#10'No se encontró el archivo de configuración: %s', 
    [ExtractFilePath(Application.ExeName) + 'conf.ini']);

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 22-01-2010
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Pues si, es muy curioso, ¿sucede lo mismo si intentas hacerlo asi?...

Código Delphi [-]
if not fileexists('conf.ini') then
begin
 showmessage('Aplicacion Dañada!');
 application.terminate;
end;

Aunque lo que dice delphi.com.ar, me parece bastante probable.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 22-01-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por delphi.com.ar Ver Mensaje
¿No es posible que el "default path" de la aplicación sea otro?.. o sea que se este ejecutando mediante un acceso directo donde se definió otro default path.
Pero eso no debería afectar. ExtractFilePath(Application.ExeName) no depende de la carpeta por defecto.

// Saludos
Responder Con Cita
  #5  
Antiguo 22-01-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por roman Ver Mensaje
Pero eso no debería afectar. ExtractFilePath(Application.ExeName) no depende de la carpeta por defecto.
Pues... como siempre tienes razón!... Me he tomado la costumbre de no usar el ExeName por programar en VB, ya que cuando ejecutas la aplicación en Debug como esta siendo interpretada por el IDE no tienes toda la info, solo el nombre del posible ejecutable :S
Posiblemente sea un problema de permisos sobre el archivo...
Igualmente lo que me interesaba decir, y me quedé algo corto por eso continúo, es que no tomemos como desarrolladores la mala costumbre de ocultar al máximo los errores que producen nuestras aplicaciones, es una práctica que he visto con asiduidad, y dar soporte sobre aplicaciones que solo dicen "ha sucedido un error", resulta engorroso al máximo.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 22-01-2010
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Opps, es verdad, pero entonces a mi en lo particular, no se me acurre que pueda ser .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #7  
Antiguo 22-01-2010
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Muchas gracias por sus respuestas...

Tenes muchas razon con lo de ocultar errores, pero te cuento que en mi caso, siempre al final de un proyecto, coloco una aplicacion que sirve para detectar errores, es decir, conociendo los errores que puede dar mi programa, este aplicativo te detalla los errores y te sugiere posibles maneras de solucionarlo. En este caso, es una aplicacion de administracion que la estoy desarrollando y es por eso que no habia creado todavia el "Solucionador de Errores".

Ahora lo hice... y ya les cuento si encuentro la solucion viendo mas detalladas las cosas.

{Saludos}
Responder Con Cita
  #8  
Antiguo 22-01-2010
Avatar de b3nshi
b3nshi b3nshi is offline
Miembro
 
Registrado: feb 2005
Ubicación: Tucuman - Argentina
Posts: 164
Poder: 20
b3nshi Va por buen camino
Hola nuevamente...

Estuve probando, y aparentemente no es un problema de permisos...

Ahora dejo de funcionar la copia que tenia en el escritorio tambien.

Lo mas extraño es que la ruta que me devuelve es correcta! Es decir, yo veo el archivo en el explorador de windows.

Lo que hago ahora es, crear nuevamente el archivo de configuración, y si lo pruebo inmediatamente despues, funciona... despues de un rato deja de funcionar.

El antivirus no detecto ningun virus (NOD32, AntiMalware), pero empiezo a creer que tiene q ser eso no?

Uds diran que opinan...

{Saludos}
Responder Con Cita
  #9  
Antiguo 23-01-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
a mi lo unico que se me ocurre es que tengas un error de disco, y los sectores donde se esta escribiendo esten dañados o tengan algun problema. Prueba de hacer un defrag y un scandisk, o bien ejecutarlo desde un usb u otro disco duro a ver si sigues teniendo el problema... saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Archivo DesignEditor.dcu no existe egostar OOP 5 30-12-2007 17:19:25
En access hay botón buscador-en form permite buscar patron-existe uno en Delphi igual Ale Alvarez OOP 9 26-09-2007 07:13:44
Comprobar si existe archivo Ken_Masters API de Windows 2 29-07-2007 17:14:19
buscar si existe el dato Max_E. Conexión con bases de datos 1 14-11-2006 11:25:09
saber si archivo existe cahosoft API de Windows 2 09-01-2006 11:42:07


La franja horaria es GMT +2. Ahora son las 23:54:17.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi