 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Jue 24 Nov, 2005 11:24 pm Asunto: Mayúsculas y carácteres raros con ParamStr(1) y _argv[1] |
|
|
Utilizo la global ParamStr(1) para mandar parámetros a mi aplicación, esto es la ruta del archivo ejecutado. El caso es que funciona perfecto pero resulta que esa ruta la utilizo luego en el programa para otros fines como por ejemplo mostrarla en la barra de estado del programa pero, me he fijado que si el nombre del archivo contiene espacios entonces ese parámetro se transforma todo a mayúsculas y en el lugar de los espacios aparece esa títpica "ESE" en horizontal. He intentado utilizar _argv[1] pero el resultado es el mismo, la ruta sólo se muestra correctamente si el nombre no contiene espacios. ¿Hay algún modo de mostrar correctamente la ruta completa de ParamStr(1) cuando ésta contiene espacios? gracias. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Vie 25 Nov, 2005 9:23 pm Asunto: |
|
|
No se si está muy correcto que yo mismo me conteste la pregunta pero ya que he dado con la solución creo que está bien que la postee por si sirve de ayuda a alquien más de vosotros. Bueno ... el problema viene a la hora de escribir en el registro de windows por ejemplo, si estamos asociando la extensión .txt con el nombre de programa MiPrograma, a la hora de escribir el valor MiPrograma\shell\open\command el cual contiene la ruta a nuestro ejecutable junto con los parámetros pues resulta que si queremos capturar el nombre completo de la ruta así como el nombre completo del archivo ambos con sus espacios (si los tienen) debemos hacerlo escribiendo ambos parámetros entre comillas:
De la ayuda del Builder:
| Cita: |
Note: Use double quotes to wrap multiple words as one parameter (such as long file names containing spaces).
|
Y un pequeño ejemplo de como escribir los valores "Entrecomillados" en el registro:
| Código: |
TRegistry *registrar = new TRegistry;
registrar->RootKey = HKEY_CLASSES_ROOT;
if (registrar->OpenKey(MiPrograma+"\\shell\\open\\command",true)){
registrar->WriteString("","\""+Ruta_de_mi_programa+"\"\"%1\"");
registrar->CloseKey();
}
delete registrar;
|
Lógicamente me he ayudado de los diferentes ejemplos que he encontrado en el foro los cuales me han ayudado mucho pero escribían los valores en el registro sin comillas lo que provocaba que ParamStr(1) en caso de contener espacios apareciera en el programa en mayúsculas y con carácteres raros lo cual se ha podido solucionar escribiendo los valores entrecomillados en el registro.
Espero no haberme hecho muy pesado y que pueda ayudar a más gente. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|