| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Mie 18 Jun, 2008 9:46 pm Asunto: rutas de archivos con Windows Vista |
|
|
| Holaa todos, el problema con el que me encuentro es al ejecutar mi programa en Vista. Después de solucionar varias cosas me queda un último error, cuando mi programa tiene que cargar archivos, estos no son encontrados. También al abrir un componente Dialog, tampoco se direcciona a la ruta prefijada. Bueno, ahora que recuerdo tampoco me ha dejado crear un archivo que es una función que realiza mi programa. La verdad es que yo no tengo Vista sino mi compañero, pero no lo logra solucionar. Si teneis alguna idea de cómo solucionar este problema, os lo agradeceré. Un saludo. |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Sab 21 Jun, 2008 6:47 pm Asunto: Solucionado más o menos |
|
|
| Ya lo hemos solucionado. El problema es que en Vista "Archivos de programa" no existe, sino "Program Files". En mi aplicación cambié las rutas hacia esta dirección y solucionado. Aunque supongo que habrá alguna manera de no tener que modificar el código y sí algún parámetro del sistema operativo. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 21 Jun, 2008 10:33 pm Asunto: |
|
|
una solucion sencilla es poder usar la ruta de la aplicacion tal y como te la devuelve Windows a nivel S.O y no a nivel del directorio usando la sentencia siguiente
| Código: | String Ruta = Ruta = ExtractFilePath(::Application->ExeName); |
asi en la variable "ruta", tienes el camino correcto de tu aplicación.
Saludos _________________
 |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Dom 22 Jun, 2008 7:32 pm Asunto: |
|
|
| No sé si te he entendido bien. Con esto conseguiré saber cual es la ruta real que usa Windows Vista, pero el problema es que el programa tiene que correr en cualquier SO. Pero quizá no te entendí correctamente. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Dom 22 Jun, 2008 7:55 pm Asunto: |
|
|
| César C. Salazar González escribió: | ... la ruta de la aplicacion tal y como te la devuelve Windows a nivel S.O y no a nivel del directorio usando la sentencia siguiente
| Código: | String Ruta = ExtractFilePath(::Application->ExeName); |
|
Cuando hablé de Windows, es para TODOS los Windows, no interesa si es Windows Vista o Windows 95, o Windows 3.1, la sentencia te devuelve la ruta donde se encuentra tu aplicacion y si haces algo como esto, suponiendo que tienes un TMemo con Informacion.
| Código: | Memo1->Lines->SaveToFile(Ruta+"texto.txt") |
El archivo texto.txt va a crearse en la RUTA de tu aplicacion _________________

Ultima edición por Cesar C. Salazar Gonzalez el Mie 25 Jun, 2008 5:26 am, editado 2 veces |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Lun 23 Jun, 2008 8:30 am Asunto: |
|
|
| Gracias César, llevo muy poco programando y cuesta a veces ver las cosas. Tienes razón, así funcionará bien. Saludos. |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Mar 16 Sep, 2008 3:50 pm Asunto: |
|
|
| Bueno, veo que con este método algo no funciona. Creo que debe ser pq al pedir al SO la ruta la devuelve con este formato "C:\Ruta" y para utilizarla con los componentes diálogo debe ser "C:\\Ruta". ¿Si es así, debo añadir doble barra? ¿Cómo lo puedo hacer de una manera fácil? |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 16 Sep, 2008 5:57 pm Asunto: |
|
|
Antes de postear asegurate que lo que estas diciendo es correcto.
y no digas cosas que no son. _________________
 |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Mie 17 Sep, 2008 7:01 pm Asunto: |
|
|
Cierto, sí funciona, cometí un error. Si introduces la devolución de "ExtractFilePath(::Application->ExeName);" en un componente Memo, al representarlo en pantalla se ve con una sola "\", lo mismo que un ShowMessage. Si escribes las ruta por código hay que poner "\\". Me pierdo y no entiendo si hay dos por qué representa sólo una. Supongo que será algo muy sencillo no César.
P.D. Después de 4 horas de probar y probar posteé el anterior mensaje diciendo que no funcionaba, pero había cometido un error. Como comprenderás (César) si yo creo que no funciona no puedo hacer otra cosa que comentarlo. Ahora, si tan mal te sabe que se diga que algún código tuyo no funciona, pues mira, no contestes más mensajes. Para qué queremos un foro dónde no podemos tener dudas tontas o equivocarnos? Si ya supiera no preguntaría, y si creyera que algo hago mal, no diría que no funciona un código. O es que tu nunca te equivocas?
P.D.I. Me sabe realmente mal que me contestes así, pues te tengo bien valorado y siempre está ahí. Pero bueno, una cosa no quita a la otra. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 17 Sep, 2008 8:43 pm Asunto: |
|
|
| rauls66 escribió: | | P.D.I. Me sabe realmente mal que me contestes así, pues te tengo bien valorado y siempre está ahí. Pero bueno, una cosa no quita a la otra. |
No creo que haya cometido algo malo en decirlo, es mas el mensaje anterior no tiene ningún signo de admiración o exaclamción, eso significa que es solo un comentario: no esta en mayusculas (gritos), no tiene signos de (¡¡<msg> !!), por lo tanto no estoy diciendo nada malo, lo unico que estaba diciendo como un comentario es que: te asegures que esta correcto lo que dices, nada mas sin gritos, sin tonos "raros" es un comentario, el echo que lleve doble barra es por lo siguiente como la barra se usa para sencuencias de escape para las cadenas de texto
\n - Nueva linea
\t - tabulacion
\\ - Barra "\"
\" - comillas "
ejemplo: si quieres poner lo siguiente en una etiqueta de texto
En la unidad C:\ esta el directorio de "Windows"
esto debe escribirse asi
| Código: | this->Label1->Text = "En la unidad C:\\ esta el directorio de \"Windows\"" |
Nota las "\" barras antes de los caracteres especiales. _________________
 |
|
| Volver arriba |
|
 |
rauls66 Lt Cmdr

Registrado: 20 Abr 2008Mensajes: 119
|
Publicado: Jue 18 Sep, 2008 9:28 am Asunto: |
|
|
| Cierto, no ahora lo veo claro. Me falta muchísima base. Gracias otra vez César. |
|
| Volver arriba |
|
 |
|