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 13-06-2004
soul6301 soul6301 is offline
Miembro
 
Registrado: may 2004
Posts: 77
Poder: 20
soul6301 Va por buen camino
Question La función ParamStr

Hola:

Quisiera por favor obtener ayuda acerca de tres preguntas que tengo:

1) Cuando abro mi programa desde un archivo asociado, la función ParamStr(1) me da el nombre de aquel archivo pero en su modo de nombre de archivo corto. Es decir, si el archivo se llama "Texto básico.txt" y se ubica en "C:\Mis Documentos", la cadena que obtengo de ParamStr(1) es "C:\MISDOC~1\TEXTOB~.TXT". ¿Cómo logro para obtener el nombre del archivo de tipo nombre largo: "C:\Mis Documentos\Texto básico.txt"?

2) Entiendo que cuando abro un programa con un archivo asociado, el parámetro se llena con el nombre del archivo. ¿Siempre a este parámetro le corresponde este valor? ¿Pueden los parámetros contener otras palabras, por ejemplo "proceso"?

3) ¿Pueden estos parámetros ser cambiados durante el modo de ejecución? ¿Puedo cambiar los parámetros de otro programa que también está en modo de ejecución?

Sé que estas tres preguntas tienen respuestas muy diferentes, pero no quería ponerlas en tres hilos porque relativamente hablan de la misma función.

Gracias de antemano por su ayuda.
Responder Con Cita
  #2  
Antiguo 13-06-2004
Avatar de Combat-F2D
Combat-F2D Combat-F2D is offline
Miembro
 
Registrado: may 2003
Ubicación: Toletum
Posts: 454
Poder: 22
Combat-F2D Va por buen camino
sacado de la ayuda de delphi

Cita:
Note: Use double quotes to wrap multiple words as one parameter (such as long file names containing spaces).
por si de algo sirve
__________________
online
Responder Con Cita
  #3  
Antiguo 14-06-2004
soul6301 soul6301 is offline
Miembro
 
Registrado: may 2004
Posts: 77
Poder: 20
soul6301 Va por buen camino
Hola:

Sí leí ese texto en la ayuda de Delphi. Dice que use doble comillas para obtener el archivo de tipo largo... pero cómo las uso. ¿Así?: ''paramstr(1)''... Eso es simplemente ilógico. ¿Alguien tiene idea de dónde poner esas dobles comillas?

Gracias
Responder Con Cita
  #4  
Antiguo 14-06-2004
soul6301 soul6301 is offline
Miembro
 
Registrado: may 2004
Posts: 77
Poder: 20
soul6301 Va por buen camino
Quizá esté traduciendo mal y no son comillas a lo que se refiere. Disculpen si lo estoy haciendo mal. Gracias.
Responder Con Cita
  #5  
Antiguo 14-06-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El tema es que se puede mandar archivo con formato de nombres largos en linea de comando, pero encerrado en doble comillas. Por tanto sería al tiempo de dar la linea de comandos, no al recibirla.

Si ya lo has recibido como nombre corto, entoces colega:
Cita:
The GetFullPathName function retrieves the full path and filename of a specified file.

DWORD GetFullPathName(

LPCTSTR lpFileName, // address of name of file to find path for
DWORD nBufferLength, // size, in characters, of path buffer
LPTSTR lpBuffer, // address of path buffer
LPTSTR *lpFilePart // address of filename in path
);


Parameters

lpFileName

Points to a null-terminated string that specifies a valid filename. This string can use either short (the 8.3 form) or long filenames.

nBufferLength

Specifies the size, in characters, of the buffer for the drive and path.

lpBuffer

Points to a buffer that contains the null-terminated string for the name of the drive and path.

lpFilePart

Points to a variable that receives the address (in lpBuffer) of the final filename component in the path. This filename component is the long filename, if any, rather than the 8.3 form of the filename.
usa esto sacado de la Win32 Developer's guide, y por supuesto, su omónimo:

Cita:
The GetShortPathName function obtains the short path form of a specified input path.

DWORD GetShortPathName(

LPCTSTR lpszLongPath, // points to a null-terminated path string
LPTSTR lpszShortPath, // points to a buffer to receive the null-terminated short form of the path
DWORD cchBuffer // specifies the size of the buffer pointed to by lpszShortPath
);


Parameters

lpszLongPath

Points to a null-terminated path string. The function obtains the short form of this path.

lpszShortPath

Points to a buffer to receive the null-terminated short form of the path specified by lpszLongPath.

cchBuffer

Specifies the size, in characters, of the buffer pointed to by lpszShortPath.
Saludos
Responder Con Cita
  #6  
Antiguo 14-06-2004
soul6301 soul6301 is offline
Miembro
 
Registrado: may 2004
Posts: 77
Poder: 20
soul6301 Va por buen camino
Vaya! Entonces había entendido mal la ayuda. Gracias por el resto de la información, de seguro será útil.
Responder Con Cita
  #7  
Antiguo 14-06-2004
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
Solo quiero comentarte que las funciones ExpandFileName y ExtractShortPathName de las SysUtils cumplen estas funciones (no hacen otra cosa que llamar a la WinApi).

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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 00:48:19.


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