Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Coger ficheros desde ftp (https://www.clubdelphi.com/foros/showthread.php?t=51484)

Ubed 17-12-2007 10:56:01

Coger ficheros desde ftp
 
Hola, yo tengo un ftp del cual deseo coger unos ficheros.

Qerria saber que componente utilizar para poder coger ese fichero y como debo hacerlo.

He conseguido conectar con un componente llamado TFtpClient

Muchas gracias de antemano.

Tal 17-12-2007 12:08:13

Buenas.

Yo uso un objeto de Indy el TIdFTP y sin tener mucha idea fui capaz de usarlo con lo cual a mi parecer es bastante sencillo.:p

Puedes configurar la ruta, el puerto, usuario, login e incluso directorio inicial por propiedades publicas del objeto así que las puedes poner predefinidas en el código fuente o de algún fichero(un .ini) o pedir al usuario en ese momento...

El obejto devuelve una lista por valor(var lista) y también puedes coger un fichero de esa lista.

Código Delphi [-]
//obtener la lista de ficheros en FTP
FTP.List(lista,'',false);
//grabar un fichero concreto en una ruta concreta
FTP.Get([nombre fichero en FTP a granar],[fichero en local a grabar],true,false);

El resto de varibles booleanas hechales un ojo en la rutina Get,no tiene mucho misterio.

Espero haberte ayudado, un saludo.

Ubed 17-12-2007 17:08:15

si bastante, porque mi siguiente pregunta era como hacer una lista de los elementos de la carpeta, jejeje.

Ahora tengo otra pregunta, Como hago para que no aparezcan los permisos del fichero, bueno como obtengo solo el nombre del fichero.

Tal 17-12-2007 17:17:52

Ese problema también lo tuve yo.
Yo creo que si pones
[delphi]
FTP.List(lista,'',false);
[/DEPLHI]

el false ese es para que no te liste los detalles.
Aún así yo gasto gasto esto:
En sysutils.pas hay una función "ExtractFileName" que te devuelve sólo el nombre del fichero pasando del resto de cosas que te devuelve ftp.list.
Eso es al menos lo que uso yo.

Ubed 17-12-2007 18:15:49

COmo utilizas el ExtractFileName sobre la lista??

Tal 17-12-2007 18:36:05

Con un bucle.
Código Delphi [-]
for i := 2 to lista.count-1 do
      lista[n] := ExtractFileName(lista[n]);

el lista[0] es '.' y el lista[1] son los '..'
El '.' indica directorio actual y '..' para ir al directorio anterior que se usan
para navegar lo que pasa es que a la hora de coger nombres de archivos nos traen sin cuidado.

Y al final lo que tu quires es

Código Delphi [-]
FTP.List(lista,'',false);
for i := 2 to lista.count-1 do
      lista[n] := ExtractFileName(lista[n]);

Y ya tienes la lista de tus ficheros listos para mostrar al usuario limpios.

NOTA: tal cual esta lista no te valdrá para abrir ficheros ya que no tendrás la extensión. Usa otra lista auxiliar para mostrar. Una para enseñar y otra para manejar. Consejo gratis.
PD2: Evidentemente haz FTP.get sobre la que manejas.

Ubed 18-12-2007 12:48:31

Bien, ahora llega otra pregunta dificil, lo que quiero coger son archivos de PHP y kiero k me muestre el resultado en un memo o algo parecido, como deberia acerlo???

Tal 18-12-2007 18:03:10

Tan sencillo como hacer
Código Delphi [-]
Memo.lines := lista;

Creo recordar que así funciona, sino

Código Delphi [-]
for i := 0 to lista.count-1
Memo.lines.add(lista[i]);

Donde lista es la lista de archivos ya bonitos para mostrar.


La franja horaria es GMT +2. Ahora son las 10:21:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi