ayuda con funciones FTP

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
Sara. M.
Mensajes: 1
Registrado: 10 Mar 2011, 16:24

ayuda con funciones FTP

Mensaje por Sara. M. »

Buenos dias :smt006 , veran, hice un script que descarga un arxivo de una cuenta ftp dentro del kual se escriven los comandos que el script interpretará
con la fucion StringSplit, dependiendo del comando escrito ejecuta una o otra funcion ademas de pasarle los modificadores del comando, un estilo
MSDOS, bueno el problema es que utilizo dos veces la funcion _FTP_FileGet o _FTP_ProgressDownload, pero tan solo consigo que funcione la funcion
ver_cuenta() que es practicamente identica a la funcion download() sin embargo esta ultima no funciona. :smt013 :smt013 :smt013
llevo ya bastante rato dedicado y tan solo he llegado a la conclusion que el script se esta riendo de mi (tal vez no sé utilizar correctamente las funciones FTP), enfin les agradeceria mucho su ayuda.

e aqui el código:

Código: Seleccionar todo

#include <FTPEx.au3>

ver_cuenta
Func ver_cuenta()
	$name=nombre()

	$Open=_FTP_Open('FTP')
	$Conn=_FTP_Connect($Open, $server, $username, $pass, 1) ;ruta de acceso abierta
	$get=_FTP_FileGet($Conn, "/"& $name &".rd1", "" & @HomeDrive &"/k_sys/descargado.rdl")
	$fend=_FTP_Close($Open)
	readRDL()
EndFunc

Func readRDL()
$readsell=FileOpen("" & @ScriptDir &"/descargado.rdl")
		$shell=FileRead($readsell)
	FileClose($readsell)
$test=StringSplit($shell, " ", 1)

Select 
	Case $test[1]="download" 
	download()
	
	Case $test[1]="exec"
	exec($test)
EndSelect
	
Func download($test)
; path's
MsgBox(0,"", $test[2])
MsgBox(0, "", $test[3])

	$ftp=_FTP_Open('FTP')
	$con=_FTP_Connect($ftp, $server, $username, $pass, 1)
	$coje=_FTP_ProgressDownload($con, $test[3], $test[2]) ; Aqui también e utilizado _FTP_FileGet sin ningún resultado
	$ex=_FTP_Close($ftp)
EndFunc

Func exec($test)
	MsgBox(0, "", $test[2])
EndFunc

Func nombre()
$file = FileOpen("" & @ScriptDir &"/name.txt", 0)
    $name = FileRead($file)
FileClose($file) 

Return $name
EndFunc
Avatar de Usuario
Ximorro
Profesional del Autoit
Mensajes: 1500
Registrado: 10 Jul 2009, 12:35
Ubicación: Castellón, España

Re: ayuda con funciones FTP

Mensaje por Ximorro »

Mira, no te puedo explicar lo del FTP porque no lo he manejado, pero viendo el código probablemente el problema no está ahí.
Ese código está mal estructrado, ni siquiera compila.
Para empezar no sé qué hace ese "ver_cuenta" al principio de todo, eso da un error de sintaxis. Si lo que quieres es ejecutar la función te faltan los paréntesis.
Pero es que además el programa no está bien formado, pues falta un EndFunc, creo que el de readRDL(), con lo que puede que esté usando el de download(), así que esa función igual es ignorada.

Te recomiendo usar un editor como Scite, que te comprueba la sintaxis del programa antes de hacer el exe. Si quieres hacerlo a mano tienes que pasarle el programa Au3Check para ver si hay errores sintácticos.

Como detalle menor, puedes eliminar los "" & @ScriptDir, añadir una cadena vacía no tiene ninguna función en este lenguaje, en otros puede servir para forzar el tipo pero aquí no, así que te lo puedes ahorrar.
"¿Y no será que en este mundo hay cada vez más gente y menos personas?". Mafalda (Quino)
kj_
Mensajes: 10
Registrado: 23 Feb 2010, 00:18

Re: ayuda con funciones FTP

Mensaje por kj_ »

creo que descargar ese archivo sería más fácil con InetGet:

InetGet("URL", "Directorio donde guardasrás" & "Nombre del archivo a descargar", [funciónes con las que se descargará])

estas son las funcines:

= 0 (por defecto) Obtener el archivo de caché local si está disponible.
1 = Forzar la recarga desde el sitio remoto.
2 = Ignorar todos los errores SSL (con conexiones HTTPS).
4 = usar ASCII en la transferencia de archivos con el protocolo FTP (No se puede combinar con la opción 8).
8 = Usar BINARIO en la transferencia de archivos con el protocolo FTP (No se puede combinar con la opción 4). Este es el modo por defecto.
16 = By-pass forcing the connection online.

como ves, también sirve para ftp y para colocar el usuarioy contraseña se podría hacer así:

ftp://usuario:contraseñ[email protected]

kj
Más anime en en formato ligero y HQ aquí:
Imagen
Responder