FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour PROBLEMAS CON FTP
Posts: 59
Joined: Tue Jan 31, 2006 01:32 PM
PROBLEMAS CON FTP
Posted: Mon May 29, 2006 12:24 PM

Estimados amigos, he tratado infructuosamente de crear una aplicacion que suba archivos y baje archivos de un sitio FTP, he utilizado la clase QFTP. Bajarlos me es imposible, lee el directorio del FTP y los archivos, pero cuando comienzo la descarga de cada uno, tambien queda como en un LOOP.

Hay alguna otra clase de Harbour o Fivewin para realizar este proceso ??

Gracias

Posts: 140
Joined: Thu Feb 02, 2006 12:09 PM
PROBLEMAS CON FTP
Posted: Mon May 29, 2006 03:58 PM

Yo he usado con exito la clase tFtp partiendo de un ejemplo que esta en FWH

\FWH\SAMPLES\GALLERY\ICOPYFIL

Verifica ese directorio

Mario Antonio González Osal

Venezuela

m a g 0 7 1 @ g m a i l. c o m
Posts: 59
Joined: Tue Jan 31, 2006 01:32 PM
PROBLEMAS CON FTP
Posted: Mon May 29, 2006 04:18 PM

Gracias Mario, no lo habia visto, lo probare.

Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
PROBLEMAS CON FTP
Posted: Mon May 29, 2006 08:38 PM

Con las clases nativas de FWH funciona muy bien.

/* ==========================================================================================
Func_Ftp


Funciones para el manejo de FTP
Revisión : 04/04/2006 19:27
Revisado por : Angel
==========================================================================================
*/

include "fivewin.ch"

Function Main()
Local oInternet, oFtp, cServFtp:="server",cUserFTp:="user",cPassFtp:="pass"

  oInternet := TInternet():New()
  oFTP      := TFTP():New( Alltrim(cServFtp), oInternet, Alltrim(cUserFtp),Alltrim(cPassFtp) )

  If ! Empty( oFTP:hFTP )
    FtpSendFiles ({"file1.txt","file2.txt","file3.txt"},{"destfile1.txt","destfile2.txt","destfile3.txt"},oFtp)

  Endif
  oInternet:End()

Return (nil)

Function FTPSendFiles ( aSource, aTarget, oFTP )
Local nBufSize:=4096
local n
local hSource
local cBuffer := Space( nBufSize )
local nBytes, nFile := 0, nTotal := 0
local nTotSize := 0
local oFile

for n = 1 to Len( aSource )
if ! File( aSource[ n ] )
MsgStop( "Fichero no encontrado: " + aSource[ n ] )
exit
endif
hSource = FOpen( aSource[ n ] )
nTotSize += FSeek( hSource, 0, 2 )
FClose( hSource )
SysRefresh()
next

for n = 1 to Len( aSource )
hSource = FOpen( aSource[ n ] )

  oFile = TFtpFile():New( aTarget[ n ], oFTP )
  oFile:OpenWrite()

  FSeek( hSource, 0, 0 )
  nFile := 0
  SysRefresh()
  while ( nBytes := FRead( hSource, @cBuffer, nBufSize ) ) > 0 
     oFile:Write( SubStr( cBuffer, 1, nBytes ) )
     SysRefresh()
  end
  FClose( hSource )
  oFile:End()

next
return nil

Function FtpGetFiles( aSource, aTarget, oFTP, oSay )
Local nBufSize:=4096
local n
local hTarget
local cBuffer := Space( nBufSize )
local nBytes, nFile := 0, nTotal := 0
local 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 ] ) // first file, size
nTotSize += ATail( aSizes )
else
AAdd( aSizes, 0 )
endif
SysRefresh()
next

nFile := 0
for n = 1 to Len( aSource )

  hTarget = FCreate( aTarget[ n ] )

  oFile = TFtpFile():New( aSource[ n ], oFTP )
  oFile:OpenRead()


  SysRefresh()
  while ( nBytes := Len( cBuffer := oFile:Read( nBufSize ) ) ) > 0
     FWrite( hTarget, cBuffer, nBytes )
     If oSay<>NIL
       oSay:SetText ("- Recibiendo :"+Str(nFile+=nBytes)+" de "+Str(nTotSize))
     Endif
     SysRefresh()
  end
  FClose( hTarget )
  oFile:End()

next

return nil

No deberias tener problemas.

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 38
Joined: Thu Oct 13, 2005 09:38 AM
Porblemas FTP
Posted: Tue May 30, 2006 06:48 PM

Angel:

He probado el codigo que pones en el post, y me genera el siguiente error

Cannot Load WinINet.dll

He comprobado esta libreria y se encuentra tanto en: \WINDOWS\SYSTEM, como en \WINDOWS\SYSTEM32

¿Sabes que sucede?

Gracias de antemano

Un saludo
Alfonso Larrinaga
info@bsinformatica.net
Posts: 59
Joined: Tue Jan 31, 2006 01:32 PM
PROBLEMAS CON FTP
Posted: Wed May 31, 2006 11:41 PM

Gracias por las Recomendaciones, efectivamente use la clase TFTP y me resulta excelente, pude resolver mi problema

Gracias a todos por la ayuda

Posts: 9
Joined: Tue May 23, 2006 10:05 PM
PROBLEMAS CON FTP
Posted: Thu Jun 01, 2006 03:33 PM

Yo estoy usando tFTP pero encontre problemas con versiones mas nuevas de FWH o xHarbour no pude identificar quien ocaciona el problema.
Asi que todo lo que consierne a tFTP utilizo las versiones:

C:\eduardo\fwh\ftp>make.exe -fmakex.dat
MAKE Version 5.2 Copyright 1987, 2000 Borland
c:\xHarfw24\bin\harbour.exe -p -n -m -es2 -gc0 -i.;c:\fw24h\include;c:\x
Harfw24\include -d__HARBOUR__ -dSYSTEMA .\SendFtp.prg -o.\SendFtp.c
xHarbour Compiler build 0.73.0 (SimpLex)
Copyright 1999-2002, http://www.xharbour.org http://www.harbour-project.org/
Compiling '.\SendFtp.prg' and generating preprocessed output to '.\SendFtp.ppo'.
..
Lines 752, Functions/Procedures 27
Generating C source output to '.\SendFtp.c'... Done.
c:\bcc55\bin\bcc32.exe -c -O2 -Ic:\xHarfw24\include;c:\bcc55\include -oo
bj\SendFtp.obj .\SendFtp.c
Borland C++ 5.5.1 for Win32 Copyright 1993, 2000 Borland
.\SendFtp.c:
c:\bcc55\bin\ilink32.exe -Gn -aa -Tpe -s

Espero te sea util

Eduardo Rizzolo

Eldorado Misiones Argentina
fullpaint@pinturas-misioneras.com.ar
Secundario:fullpaint@gmail.com
Grupo PuertoSUR
Telegram.@Fullpaint

Continue the discussion