
28/01/2003, 05:53
|
| | Fecha de Ingreso: abril-2002
Mensajes: 438
Antigüedad: 22 años, 11 meses Puntos: 2 | |
Hola,
Shell puedes usarlo "tipo" sub y "tipo" function. Por ponerte un ejemplo más sencillo, como el msgBox. Si lo pones así:
msgbox "hola que pasa colegas", simplemente muestra el texto y punto, si lo pones así:
res=msgbox ("hola que pasa colegas. Responde algo",vbQuestion+vbyesno)
Puedes coger el valor que te devuleve el msgBox y luego hacer un if con el res para saber que ha seleccionado el usuario. Pues bien, cuando usas la función Shell como "sub" (sin paréntesis) lo único que haces es ejecutar el exe, el bat o lo que le indiques, pero si le pones paréntesis te devuelve un long que identifica al proceso creado y que es totalmente necesario conocer para poder usar algunas APIS. Así que si le pones los paréntesis el programa espera que captures el valor de retorno de la función Shell en una variable, y de ahí que te diga que falta un igual, es decir, o usas
Shell "....."
o bien usas
dim res as long
res=Shell("....")
Así te rulará bien. Respecto a lo del len. Compruébalo tú mismo, es sumamente sencillo, primero comprueba que devuelve la función dir cuando existe y cuando no existe el fichero. Supongo que len la conoces bien (no hay problema por ahí). Y luego comprueba esto:
dim res as integer
res=0
if res then
msgbox "Entro1"
else
msgbox "Entro2"
end if
res=1
if res then
msgbox "Entro1"
else
msgbox "Entro2"
end if
Es decir, comprobarás que al igual que muchos otros lenguajes de programación, VB asocia el cero con false y cualquier otro valor entero que no sea cero con true. ASi que if len(dir(....)) then, hace:
dir---> cadena de texto
len --> longitud de la cadena
if len(dir(...)) ---> si la longitud es cero no entro ya que es como decir if 0 then (por tanto false), si la longitud no es cero, el fichero existe, len devuelve algo superior a cero y por tanto tienes algo del palo if 8 then (por ejemplo) y esto es siempr tratado como te he dicho antes como si fuera if true then y por tanto entro en el if.
Saludos. |