• Domingo 22 de Diciembre de 2024, 03:16

Autor Tema:  Problema Con Run  (Leído 1955 veces)

dcnseC

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: pe
    • Ver Perfil
    • dcnseC Soft
Problema Con Run
« en: Martes 5 de Febrero de 2008, 19:59 »
0
mi consulta es la siguiente:
estoy haciendo una pequeña aplicación que utiliza RUN, pero me ejecuta perfectamente cuando lo escribo así:


string ls_aplicacion, ls_archivo
// ls_aplicacion contiene la ruta de la aplicación a ejecutarse
// ls_archivo contiene el archivo a ejecutarse con la aplicacion ls_aplicacion
ls_aplicacion="C:\ruta de la aplicacion\wword.exe
ls_archivo="D:\archivo.doc"
run(ls_aplicacion+' '+ls_archivo)

Con las lineas anteriores corre perfectamente

ahora el problemas viene cuando el nombre del archivo tiene espacio en blanco por ejemplo el archivo anterior es: D:\archivo.doc, no tiene ningun espacio en blanco pero si fuera D:\es archivo.doc ya no lo ejecuta, lo reconoce como si "es" fuera una archivo y "archivo" fuera otro y entonces Word devuelve un error que dice que no encuentra el archivo y es logico no?.

Ahora lo que yo e echo es lo siguiente:

string ls_aplicacion
string ls_naplicacion
//ls_aplicacion almacena la ruta de la aplicacion
//ls_naplicacion almacena la nueva ruta despues de aber pasado por el bucle siguiente:

1. for li_i=1 to len(ls_aplicacion)
2.   ls_res=mid(ls_aplicacion,li_i,1)
3.   if ls_res=' ' then
4.      ls_naplicacion=ls_naplicacion+'~160' // **
5.   else
6.      ls_naplicacion=ls_naplicacion+mid(ls_aplicacion,li_i,1)
7.   end if
8. next

el bucle anterior....
1. Empieza el bucle dsde 1 hasta el numero que retona la funcion LEN
2. Corta la cadena que esta en ls_aplicacion, dsde la posicion li_i y coge un caracter, y luego lo almacena en ls_res
3. verifica si ls_res que contiene la cadena cortada es un espacio en blanco
4. Si ls_res es un espacio en blanco entonces a ls_naplicacion le agrega el codigo ascii 160 junto al caracter especial PB '~' (sin comillas) entonces que asi ~160 que es = a espacio en blanco (' ').
5. Sino
6. Sigue construyendo la cadena en ls_naplicacion
7. fin
8. siguiente

ahora la cadena que devuelve ls_naplicacion despues de pasar por el bucle anterior es con espacios en blanco pero generado por codigo ascii y que la makina lo identifica como sino fuera un espacio en blanco. entonces cuando ejecuta mi programa ya no me devuelve el error que explico arriba sino que me devuelve un error que dice que el archivo no existe....

1. ruta normal: D:\es archivo.doc
2. ruta despues del bucle: D:\es archivo.doc

si ves es lo mismo, pero en 1. me devuelve el primer error que explico y en el 2. me devuelve el error que el archivo no existe.
ahora yo pienso que la makina lo leera asi: D:\es~160archivo.doc que desde luego es totalmente diferente al nombre original.

Necesito su ayuda.... su punto de vista si lo que estoy haciedo esta bien... o si es que hay alguna forma de repararlo....

dcnseC

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: pe
    • Ver Perfil
    • dcnseC Soft
Re: Problema Con Run
« Respuesta #1 en: Jueves 28 de Febrero de 2008, 15:10 »
0
Estoy aciendo una aplicación POwer Builder y Necesito ayuda con las tres cosas que e publicado en este foro por el momento...

Que acaso nadie me puede ayudar.?