Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];

Вниз

ICS   Найти похожие ветки 

 
Dennis I. Komarov ©   (2007-12-11 12:50) [0]

При передаче через TFtpClient приходит изменение содержимого файла.
Процедуры передачи в dll

Никто такое не встречал? Может свойство какое?


 
Сергей М. ©   (2007-12-11 13:05) [1]


> Процедуры передачи в dll
>


Передачи чего и зачем ?


 
Dennis I. Komarov ©   (2007-12-11 13:30) [2]

В dll запрятаны процедуры Send, Recive и т.п.
Разумеется передачи файлов, ФТП все-таки :)


 
Сергей М. ©   (2007-12-11 13:34) [3]

И что тебе непонятно при этом ?


 
Dennis I. Komarov ©   (2007-12-11 13:36) [4]

Экземпляры создаюся там же - на инди вроде работает все


 
Сергей М. ©   (2007-12-11 13:42) [5]

см. [3]


 
Dennis I. Komarov ©   (2007-12-11 13:42) [6]

library qftp;

uses
 SysUtils,
 Classes, Windows, Dialogs,
 OverbyteIcsWndControl, OverbyteIcsFtpCli, OverbyteIcsLogger,
 Sockets, ComCtrls;
const
 rFileLog = "***\ics_r.log";
 sFileLog = "***\ics_s.log";
 ftpHost = "******";
 ftpUsername = "******";
 ftpPassword = "******";

{$R *.res}

function GetTempWindowsPath: string;
var
 tmp: array[0..1023] of AnsiChar;
begin
 GetTempPath(1024, Tmp);
 Result:=tmp;
end;

function SendFile(FileName, FTPPath: PAnsiChar): Boolean; Export;
var
 FTP: TFtpClient;
 Log: TIcsLogger;
begin
 Result:=false;
 if FileExists(StrPas(FileName)) then begin
   Log:= TIcsLogger.Create(nil);
   FTP:=TFtpClient.Create(nil);
   try
     FTP.HostName:=ftpHost;
     FTP.Username:=ftpUsername;
     FTP.PassWord:=ftpPassword;
     FTP.Passive:=true;
     Log.LogOptions:=[loDestEvent,loDestFile,loDestOutDebug,loAddStamp,loWsockErr,loW sockInfo,loWsockDump,loSslErr,loSslInfo,loSslDump,loProtSpecErr,loProtSpecInfo,l oProtSpecDump];
     Log.LogFileName:=sFileLog;
     FTP.IcsLogger:=Log;
     try
       FTP.Connect;
       FTP.LocalFileName := StrPas(FileName);
       FTP.HostFileName := StrPas(FTPPath) + "/" + ExtractFileName(FTP.LocalFileName);
       Result:=FTP.Put;
     finally
       FTP.Quit;
     end;
   finally
     FTP.Free;
     Log.Free;
   end;
 end;
end;

function RenameFile(FtpFileNameOld, FtpFileNameNew: PAnsiChar): Boolean; Export;
var
 FTP: TFtpClient;
 Log: TIcsLogger;
begin
 Log:= TIcsLogger.Create(nil);
 FTP:=TFtpClient.Create(nil);
 try
   FTP.HostName:=ftpHost;
   FTP.Username:=ftpUsername;
   FTP.PassWord:=ftpPassword;
   FTP.Passive:=true;
   Log.LogOptions:=[loDestEvent,loDestFile,loDestOutDebug,loAddStamp,loWsockErr,loW sockInfo,loWsockDump,loSslErr,loSslInfo,loSslDump,loProtSpecErr,loProtSpecInfo,l oProtSpecDump];
   Log.LogFileName:=rFileLog;
   FTP.IcsLogger:=Log;
   try
     FTP.Connect;
     FTP.HostFileName:= StrPas(FtpFileNameOld);
     FTP.LocalFileName:= StrPas(FtpFileNameNew);
     Result:=FTP.Ren;
   finally
     FTP.Quit;
   end;
 finally
   FTP.Free;
   Log.Free;
 end;
end;

function ReciveFile(FTPFileName, FileName: PAnsiChar): Boolean; Export;
var
 FTP: TFtpClient;
 Log: TIcsLogger;
 TmpDir: string;
begin
//  Result:=false;
 TmpDir:=GetTempWindowsPath + "ftp_r";
 Log:= TIcsLogger.Create(nil);
 FTP:=TFtpClient.Create(nil);
 try
   FTP.HostName:=ftpHost;
   FTP.Username:=ftpUsername;
   FTP.PassWord:=ftpPassword;
   FTP.Passive:=true;
   Log.LogOptions:=[loDestEvent,loDestFile,loDestOutDebug,loAddStamp,loWsockErr,loW sockInfo,loWsockDump,loSslErr,loSslInfo,loSslDump,loProtSpecErr,loProtSpecInfo,l oProtSpecDump];
   Log.LogFileName:=rFileLog;
   FTP.IcsLogger:=Log;
   try
     if (not DirectoryExists(TmpDir)) then CreateDir(TmpDir);
     FTP.Connect;
     FTP.HostFileName := StrPas(FTPFileName);
     FTP.LocalFileName := TmpDir + "\" + ExtractFileName(StrPas(FileName));
     Result:= FTP.Get and SysUtils.RenameFile(TmpDir + "\" + ExtractFileName(StrPas(FileName)), StrPas(FileName));
   finally
     FTP.Quit;
   end;
 finally
   FTP.Free;
   Log.Free;
 end;
end;

function DeleteFile(FTPFileName: PAnsiChar): Boolean; Export;
var
 FTP: TFtpClient;
 Log: TIcsLogger;
begin
 Log:= TIcsLogger.Create(nil);
 FTP:=TFtpClient.Create(nil);
 try
   FTP.HostName:=ftpHost;
   FTP.Username:=ftpUsername;
   FTP.PassWord:=ftpPassword;
   FTP.Passive:=true;
   Log.LogOptions:=[loDestEvent,loDestFile,loDestOutDebug,loAddStamp,loWsockErr,loW sockInfo,loWsockDump,loSslErr,loSslInfo,loSslDump,loProtSpecErr,loProtSpecInfo,l oProtSpecDump];
   Log.LogFileName:=rFileLog;
   FTP.IcsLogger:=Log;
   try
     FTP.Connect;
     FTP.HostFileName := StrPas(FTPFileName);
     Result:=FTP.Dele;
   finally
     FTP.Quit;
   end;
 finally
   FTP.Free;
   Log.Free;
 end;
end;

function GetFileList(FTPPath: PAnsiChar; var RBuf: TStrings): Boolean; Export;
var
 FTP: TFtpClient;
 Log: TIcsLogger;
begin
 Log:= TIcsLogger.Create(nil);
 FTP:=TFtpClient.Create(nil);
 try
   FTP.HostName:=ftpHost;
   FTP.Username:=ftpUsername;
   FTP.PassWord:=ftpPassword;
   FTP.Passive:=true;
   Log.LogOptions:=[loDestEvent,loDestFile,loDestOutDebug,loAddStamp,loWsockErr,loW sockInfo,loWsockDump,loSslErr,loSslInfo,loSslDump,loProtSpecErr,loProtSpecInfo,l oProtSpecDump];
   Log.LogFileName:=rFileLog;
   FTP.IcsLogger:=Log;
   try
     FTP.Connect;
     FTP.HostDirName:=StrPas(FTPPath);
     FTP.LocalFileName:=GetTempWindowsPath + "icslist.tmp";
     Result:= FTP.Cwd and FTP.Dir;
     RBuf.LoadFromFile(GetTempWindowsPath + "icslist.tmp");
     SysUtils.DeleteFile(GetTempWindowsPath + "icslist.tmp");
   finally
     FTP.Quit;
   end;
 finally
   FTP.Free;
   Log.Free;
 end;
end;

exports
 SendFile, RenameFile, ReciveFile, DeleteFile, GetFileList;
begin
end.


 
Dennis I. Komarov ©   (2007-12-11 13:43) [7]

> [3] Сергей М. ©   (11.12.07 13:34)

Почему он пересылается с искожениями?


 
Сергей М. ©   (2007-12-11 13:44) [8]

Что с этим добром делать ?)

Когда изволишь вопрос сформулировать ?


 
Сергей М. ©   (2007-12-11 13:47) [9]


> Почему он пересылается с искожениями?


Вникать в код нет никакого желания.

Скорей всего потому, что ICS, в отличие от Инди, использует асинхронный транспорт с нотификациями.


 
Anatoly Podgoretsky ©   (2007-12-11 13:56) [10]

Используется путь Дельфи - Driven Event Model


 
Dennis I. Komarov ©   (2007-12-11 14:00) [11]

> [10] Anatoly Podgoretsky ©   (11.12.07 13:56)

???


 
Сергей М. ©   (2007-12-11 14:22) [12]


> Dennis I. Komarov ©   (11.12.07 14:00) [11]


События в Инспекторе Объектов у TFtpClient видишь ?
Как думаешь, для чего они представлены ?


 
Dennis I. Komarov ©   (2007-12-11 14:38) [13]

> [12] Сергей М. ©   (11.12.07 14:22)

Ну вижу, а при чем тут события и результирующий файл?


 
Сергей М. ©   (2007-12-11 15:17) [14]

У меня нет под рукой ICS, но подозреваю, что работа с компонентом идет в асинхр.режиме. Притом и события.


 
Dennis I. Komarov ©   (2007-12-11 15:27) [15]

> [14] Сергей М. ©   (11.12.07 15:17)

Не одну ассинхронную процедуру не использовал.
На сколько я понял из примеров все использованные процедуры - синхронные
И как это может влиять на получающийся файл. Он увеличивается в объеме.


 
Сергей М. ©   (2007-12-11 15:48) [16]


> Он увеличивается в объеме


Что показывает пошаговая трассировка ?
На каком этапе выполнения твоего кода это происходит ?


 
Lacmus ©   (2007-12-11 16:08) [17]

>Может свойство какое?

Binary ?


 
Dennis I. Komarov ©   (2007-12-11 16:14) [18]

При вызове FTP.GET
Получаем файл - он отличается от исходного :(


 
Dennis I. Komarov ©   (2007-12-11 16:15) [19]

> [17] Lacmus ©   (11.12.07 16:08)

Стоит по умолчанию



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.007 c
6-1178027712
denissoft
2007-05-01 17:55
2008.01.13
программно отключить соединение по локальной


15-1197210350
Ольга
2007-12-09 17:25
2008.01.13
Где найти наборы иконок


2-1197373005
IntruderLab
2007-12-11 14:36
2008.01.13
Создать файл и наполнить его символами


15-1197018644
Greench
2007-12-07 12:10
2008.01.13
Скобки в арифметическом выражении


3-1189069315
Sonia
2007-09-06 13:01
2008.01.13
ORA-02064: distributed operation not supported





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский