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 15-03-2004
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Directorio actual

Necesito saber el directorio donde esta mi aplicacion delphi (.exe), por ejemplo, si el ejecutable esta en "c:\aplicacion" quisiera obtener este camino.

gracias
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #2  
Antiguo 15-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
ExtractFilePath(Application.ExeName)
Responder Con Cita
  #3  
Antiguo 15-03-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
ExtractDir(Application.FileName);

Por alli va el asunto no tengo delphi a mano para decirte bien, pero si no me equivoco es asi
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 15-03-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Pues respondimos al mismo tiempo
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Solo quiero aclarar, debido al título del hilo, que el directorio del ejecutable de tu aplicación, no necesariamente va a ser el "directorio actual", que en principio sería el que se coloque en el campo "iniciar en" de un acceso directo. Claro que si no se indica... serán el mismo, pero cabe la posibilidad que sean diferentes.

Cual de los dos es el que te interesa?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 16-03-2004
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
Otra froma de obtener el directorio del ejecutable:

ParamStr(0);

(de los viejos tiempos del DOS)

// Saludos

¡Ah! Muy buena observación de jachguate. Si lo que buscas es el directorio actual, tal como indica el título del mensaje, puedes usar la función GetDir.
Responder Con Cita
  #7  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Para completar lo dicho por roman, y para obtener solamente la ruta completa del ejecutable, al viejo estilo de DOS, y aprovechando las mejoras de Delphi...

ExtractFilePath(ExpandFileName(ParamStr(0)));



Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 16-03-2004
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
Esteeee, sip, tienes razón, se me olvidaba quitar el nombre del archivo. Pero ¿es necesario el ExpandFileName en este caso? Me parece que ParamStr siempre da la ruta expandida.

// Saludos
Responder Con Cita
  #9  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Pues la verdad.. no se si es una mala maña, quizas producto de una experiencia del pasado, que simplemente se convirtió en costumbre... ahora no tengo delphi a mano para probarlo... pero si santiago14 o vos roman pueden sacarnos de la duda... sería excelente.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 16-03-2004
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
Bueno, pues la ayuda de Delphi sólo indica:

Cita:
On Windows, ParamStr(0) returns the path and file name of the executing program
y en la prueba que hago devuelve, en efecto, la ruta completa.

// Saludos
Responder Con Cita
  #11  
Antiguo 16-03-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
ParmStr(0):C:\ARCHIVOS DE PROGRAMA\BORLAND\DELPHI5\BIN\PROJECT1.EXE

ExtractFilePath(ExpandFileName(ParamStr(0))):;
C:\ARCHIVOS DE PROGRAMA\BORLAND\DELPHI5\BIN\

Creo que si lo que se pide es únicamente la ruta completa y no el nombre del ejecutable, hay que utilizar lo propuesto por JachGuate.


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #12  
Antiguo 16-03-2004
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 marcoszorrilla
Creo que si lo que se pide es únicamente la ruta completa y no el nombre del ejecutable, hay que utilizar lo propuesto por JachGuate.
Totalmente cierto Marcos, a mí se me había pasado lo del nombre del archivo. La duda es sí es necesario ExpandFileName o basta ExtractFilePath.

// Saludos
Responder Con Cita
  #13  
Antiguo 16-03-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Empezado por roman
Totalmente cierto Marcos, a mí se me había pasado lo del nombre del archivo. La duda es sí es necesario ExpandFileName o basta ExtractFilePath.

// Saludos
Según lo mostrado por Marcos, con ExtractFilePath sería suficiente
Responder Con Cita
  #14  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
He realizado pruebas en delphi4 y delphi7, y en los casos probados, el ExpandFileName no es necesario.

Los casos probados son:
  • Ejecutar directamente el programa (via doble click en el exe o desde el ide)
  • invocar al ejecutable via path (es decir, estando en c:\windows, p. ej., e invocarlo en c:\ solamente con el nombre del exe)
  • Ejecutar el programa con un acceso directo y ruta de inicio diferente a la del ejecutable

Hay algun caso que se me haya escapado?
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #15  
Antiguo 16-03-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
¿ En que S.O. lo has probado, seria interesante probarlo en un Windows 95/98 ?

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #16  
Antiguo 16-03-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Con Windows 98 funciona correctamente lo siguiente:

Código:
ShowMessage(ExtractFilePath(ParamStr(0)));
Resultado:
C:\ARCHIVOS DE PROGRAMA\BORLAND\DELPHI5\BIN\



Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #17  
Antiguo 16-03-2004
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
De hecho sería un poco raro que se necesitara ExpandFileName. Al menos no estaría claro en qué casos ParamStr(0) da la ruta ya expandida y en qué casos no.

// Saludos
Responder Con Cita
  #18  
Antiguo 16-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Yo lo he probado únicamente con windows Me.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #19  
Antiguo 17-03-2004
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Directorio actual

Para sintetizar, agradezco a todos sus respuestas. Confirmo que con extractPathFile es suficiente y utilizando application.exeName obtengo el nombre del ejecutable, por lo cual evito lo de expandFileName y ParamStr.
Otra vez se los agradezco y he quedado mas que satisfecho con sus respuestas, ah, con respecto a una de las citas que pedia probar en varios sistemas operativos, yo tengo windows 2000, professional y delphi6 enterprise y funcionan perfectamente todas las instrucciones citadas a lo largo de este hilo.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
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


La franja horaria es GMT +2. Ahora son las 01:49:15.


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