Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error con put del componente TIDFTP en Delphi5 (https://www.clubdelphi.com/foros/showthread.php?t=93501)

Soa Pelaez 18-10-2018 22:41:54

Error con put del componente TIDFTP en Delphi5
 
Buenas tardes compañeros

Me esta sucediento un error con el componente TIDFtp al realizar la acción put en Delphi5.

El código es el siguiente

Código Delphi [-]
var
  sArchivo: string;
begin
  try
    FTP.Username := 'XXXXXX';
    FTP.Password := 'XXXXXX';
    FTP.Host := 'XXXXXX';
    FTP.Port := 21;
    FTP.Connect;
    ShowMessage('Conecto de forma correcta.');
    FTP.ChangeDir('/public_html/');
    sArchivo:='XXXXXX';
    FTP.Put(sArchivo, ExtractFileName( sArchivo ), False );
    ShowMessage('Subio.');
    FTP.Disconnect;
  except
    raise Exception.Create( 'No se ha podido conectar con el servidor ' + FTP.Host );
  end;

AL realizar la linea FTP.Put me tira el error access violation 0x0040740b read of address 0xa8445ced, url captura del error (https://ibb.co/hyrxff)



Si alguien puede ayudarme se lo agradecería.

Casimiro Notevi 19-10-2018 11:55:33

En principio no parece haber motivo para ese error.

Lo único "anormal" es la ruta tipo *nix del directorio: '/public_html/'
¿Seguro que se produce el error en la línea que mencionas?

Neftali [Germán.Estévez] 19-10-2018 12:19:35

¿Has ejecutado paso a paso?
¿Sabes en qué línea exacta de da la Violación de acceso?
¿Conectas a FTP o FTPS?

Soa Pelaez 19-10-2018 16:01:37

Si es en la linea que digo en el Put, le realizo paso a paso y en tal linea tira el error, uso Indy 10.0.52 en delphi5, porque pruebo el codigo en un editor de XE8 y funciona correctamente, pero en delphi 5 me tira el error mencionado anteriormente. Ya desinstale los Indy y los instale nuevamente pero el error continua. Y requiero que me funcione en delphi 5.

Casimiro Notevi 19-10-2018 19:58:39

¿Es la misma versión de indy?

Soa Pelaez 19-10-2018 21:05:35

Cita:

Empezado por Casimiro Notevi (Mensaje 529107)
¿Es la misma versión de indy?

Si utilizo la misma version.

Casimiro Notevi 19-10-2018 21:08:32

Quita el try except para ver qué mensaje de error es el que da realmente.

Soa Pelaez 22-10-2018 14:41:08

Cita:

Empezado por Casimiro Notevi (Mensaje 529118)
Quita el try except para ver qué mensaje de error es el que da realmente.

El error que tira es el adjuntado en la imagen.

Casimiro Notevi 22-10-2018 18:17:27

Cita:

Empezado por Soa Pelaez (Mensaje 529146)
El error que tira es el adjuntado en la imagen.

Entonces hay que insistir en la pregunta: ¿seguro que el error es ahí?

Neftali [Germán.Estévez] 23-10-2018 08:36:43

Sólo se me ocurre que haya una incompatibilidad entre verisones.
Un "Access Violation" como te está dando es porque se está accediendo a una zona de memoria no permitida. Tu código parece que está correcto (lo que se confirma que en una versión posterior funcione).

Por lo tanto me hace pensar que sean las Indy. Como están muy probadas y un PUT no debería fallar, me inclino a que es problema de incompatibilidad. Delphi 5 es bastante antiguo y no se si compatrble 100% con la indy 10.
No comentas si estás utilizando otras librerías (OpenSSL, per ejemplo). Imagino que no, porque no lo comentas. Si fuera que sí, puede ser otro punto para buscar problemas.

Soa Pelaez 23-10-2018 15:01:22

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 529181)
Sólo se me ocurre que haya una incompatibilidad entre verisones.
Un "Access Violation" como te está dando es porque se está accediendo a una zona de memoria no permitida. Tu código parece que está correcto (lo que se confirma que en una versión posterior funcione).

Por lo tanto me hace pensar que sean las Indy. Como están muy probadas y un PUT no debería fallar, me inclino a que es problema de incompatibilidad. Delphi 5 es bastante antiguo y no se si compatrble 100% con la indy 10.
No comentas si estás utilizando otras librerías (OpenSSL, per ejemplo). Imagino que no, porque no lo comentas. Si fuera que sí, puede ser otro punto para buscar problemas.

No solo estoy utilizando las Indy para ello. Igual muchas gracias por las apreciaciones.


La franja horaria es GMT +2. Ahora son las 23:49:11.

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