Page 1 of 1

Problema con oFile:End() en comandos FTP

PostPosted: Thu Jul 27, 2006 1:54 pm
by carlosortiz
Utilizo la clase que viene con fivewin version 2.1a, todo bien excepto para archivos de mas de 500 KB, se cuelga al no poder ejecutar oFile:end() y tengo que cerrar la aplicacion con Ctrl+Alt+Supr.
El archivo es un .Zip de 800K y baja bien, esta sano y entero, pero el programa se cuelga.

Que podrá ser, gracias.

//--------------------------------------------------------------------
static func GetFiles( aSource, aTarget, nBufSize, oSay1, oSay2, oMeter1, oSay3, oMeter2, lEnd, oDlg, oFTP )
//--------------------------------------------------------------------
local n, hTarget, cBuffer := Space( nBufSize ), nBytes, nFile := 0, nTotal := 0, nTotSize := 0
local oFile, aFiles, aSizes := {}

for n = 1 to Len( aSource )
aFiles = oFTP:Directory( aSource[ n ] )
if Len( aFiles ) > 0
AAdd( aSizes, aFiles[ 1 ][ 2 ] )
nTotSize += ATail( aSizes )
else
AAdd( aSizes, 0 )
endif
SysRefresh()
next

nTotSize:=round(nTotSize,0)
oMeter2:nTotal = nTotSize

for n = 1 to Len( aSource )
hTarget = FCreate( aTarget[ n ] )
oFile = TFtpFile():New( aSource[ n ], oFTP )
oFile:OpenRead()

oSay1:SetText( "Origen: " + aSource[ n ] )
oSay2:SetText( "Destino: " + aTarget[ n ] )
oMeter1:Set( 0 )
oMeter1:nTotal = aSizes[ n ]
nFile := 0
SysRefresh()
do while (nBytes:=Len(cBuffer:=oFile:Read(nBufSize)))>0.and.!lEnd
FWrite( hTarget, cBuffer, nBytes )
oSay3:SetText( "Bytes copiados: " + AllTrim(Str(nTotal += nBytes)) )
oMeter1:Set( nFile += nBytes )
oMeter2:Set( nTotal )
SysRefresh()
enddo
commit
FClose( hTarget )
// ACA se cuelga el maldito
oFile:End()
next
return nil

PostPosted: Thu Jul 27, 2006 6:38 pm
by Antonio Linares
Carlos,

Has revisado/probado samples\gallery\icopyfil\icopyfil.prg ?

PostPosted: Thu Jul 27, 2006 8:42 pm
by carlosortiz
Si de echo la copie y es la que estoy utilizando.
De todas maneras gracias por tu atención.

Hace un rato abri unos ftps en otros servidores, uno en yahoo geocities y otro en lycos.es y vos sabes que en esos no da problemas, tanto icopyfile como la qftp que baje del cd2003 andan perfectamente.
Por lo que he averiguado los tres son servidores windows, estan con PASSIVE MODE y soportan ASCII y BINARY transferencias por ende no s que mas pensar del ftp de la empresa DATTATEC.

Otro tema Antonio, mi socio ha adquirido (se lo regalo el padre que andaba de vacaciones) fwh 2.algo no se bien por que no lo he visto ni a el ni lo que trajo; me parece que ya no tengo excusa para pasarme a harbour, por ahi vi el conector MEDIATOR que soporta PostGress y viene una lib/rdd para compilar Clipper DOS y Harbour, si lo conoces te pido hagas algun comentario o recomendacion.

Gracias.

Tema resuelto

PostPosted: Mon Jul 31, 2006 4:23 am
by carlosortiz
He leido en detalle qftp y me di con la sorpresa de que algunos servidores Windows informan en otra posicion el tamaño del archivo a descargar (usando socket de un ejemplo que baje por ahi), cambiando esa busqueda del valor anda de primera.

Salu2.
Qftp esta muy buena, quizas hay una version actualizada seguire buscando pero por lo menos ya me funcione de primera el Ftp.

Atte. Carlos Ortiz.

PostPosted: Mon Jul 31, 2006 6:51 am
by Antonio Linares
Carlos,

Nosotros no hemos probado mediator, pero por lo que tenemos entendido, funciona bien.