Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.11.20;
Скачать: CL | DM;

Вниз

Вопрос по FtpGetFile   Найти похожие ветки 

 
SortoVaritu ©   (2009-06-23 15:17) [80]

Вот кстати еще хотел спросить. Чем отличается запрос файла командой FTPGetFile и командой RETR.


 
Сергей М. ©   (2009-06-23 15:25) [81]


> у меня всегда такой мусор валяецца


И кому, как думаешь, интересно или приятно взирать на твой "мусор" ?

Ты пойми - если ты процитировал некий код, то подразумевается, что ты уверен в том что он имеет прямое отношение к твоей задаче или проблеме в ее решении, т.е. он имеет некое осмысленное немаловажное значение, коль скоро он фигурирует ..


> Чем отличается запрос файла командой FTPGetFile и командой
> RETR


FTPGetFile неявно подает команду RETR, получает содержимое удаленного файла и записывает полученное содержимое в указанный тобой файл.


 
SortoVaritu ©   (2009-06-23 15:52) [82]

Проще говоря FTPGetFile так же использует команду RETR для доступа к файлу.


 
Сергей М. ©   (2009-06-23 15:56) [83]

Конечно.
А как же иначе ?


 
SortoVaritu ©   (2009-06-23 16:27) [84]

Хм. Тогда я вот думаю. Решится ли мой вопрос с разрывом сессии, если я буду использовать напрямую RETR вместо FTPGETFile.


 
Сергей М. ©   (2009-06-23 16:32) [85]

Ты уже код [78] изучил ? Опробовал на своих "больших" файлах ? Каковы результаты ?
Излагай подробно и дословно все что видишь при его выполнении ..


 
SortoVaritu ©   (2009-06-25 10:31) [86]

Результат точно такой же.
Access violation at adress 77C32A16 in module msvcrt.dll. Read of adress FFFFFFFF


 
Сергей М. ©   (2009-06-25 10:53) [87]

Что за ОС ? Какая версия Делфи ?


 
SortoVaritu ©   (2009-06-25 10:59) [88]

Windows XP SP3. Delphi 7.
Я вот тоже думаю, что не в проге дело.


 
Сергей М. ©   (2009-06-25 11:05) [89]

Ты это код пробовал "один в один" ?
Или свои изменения внес ?
Если внес, показывай весь этот фрагмент со своими изменениями ..


 
SortoVaritu ©   (2009-06-25 11:11) [90]

код внес один в один. только сервер свой подставил ну и имя файла тож который на сервере лежит а так один в один


 
Сергей М. ©   (2009-06-25 11:25) [91]


> код внес один в один. только сервер свой подставил


И это ты называешь "один в один" ?)
Приводи текст с изменениями ..


 
SortoVaritu ©   (2009-06-25 11:41) [92]

function FtpCommand(
 hConnect: HINTERNET;
 fExpectResponse: BOOL;
 dwFlags: DWORD;
 lpszCommand: PChar;
 dwContext: DWORD;
 var hFtpCommand: HINTERNET): BOOL;
 stdcall; external "wininet.dll" name "FtpCommandA";

const
url = "vh22.win.hoster.by";

procedure TForm1.Button5Click(Sender: TObject);
var
hInet, hFTPSession, hFile: HINTERNET;
RCode, RTLen: Cardinal;
RText: String;
begin
hInet := InternetOpen("FTP", INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
Win32Check(Assigned(hInet));
try
  hFTPSession := InternetConnect(hInet, "vh22.win.hoster.by", 21, login, password, INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
  Win32Check(Assigned(hFTPSession));
  try
    Win32Check(FtpCommand(hFTPSession, True, FTP_TRANSFER_TYPE_BINARY, "RETR 1.txt", 0, hFile));
    try
      RTLen := 255;
      SetLength(RText, RTLen);
      RCode := 12003; // <-- бессмысленная строка !!!!
      Win32Check(InternetGetLastResponseInfo(RCode, PChar(RText), RTLen));
      SetLength(RText, RTLen);
      ShowMessage("Response code = " + IntToStr(RCode) + #10#10"Response text is"#10#10 + RText)

    finally
      InternetCloseHandle(hFile);
    end;
  finally
    InternetCloseHandle(hFTPSession);
  end;
finally
  InternetCloseHandle(hInet);
end;
end;


 
Сергей М. ©   (2009-06-25 12:15) [93]


> Для доступа к FTP используется прокси


Ну и где у тебя в коде используется прокси ?
Нпапрямую же лезешь к ресурсу ..


 
SortoVaritu ©   (2009-06-25 12:23) [94]

Блин. Я уже и прокси не использую. На прямую делаю. Чтобы исключить любую вероятность его вмешательства.


 
Сергей М. ©   (2009-06-25 12:40) [95]

И какой же размер у 1.txt ?


 
Сергей М. ©   (2009-06-25 12:45) [96]


> На прямую делаю


Доступ в Тырнет у тебя прямой или из корп.сети ?


 
SortoVaritu ©   (2009-06-25 12:50) [97]

У меня есть и такой и такой. Все это я делаю дома. Дома у меня доступ прямой. Прямое соединение через провайдера.


 
Сергей М. ©   (2009-06-25 12:57) [98]

Хочешь сказать, что способ доступа не влияет ?

Т.е. один и тот же код (без использования прокси) не работает ни здесь ни там, возбуждая одно и тио же исключение на одной и той же строчке ?

Ну хорошо.
А мой код (один в один или без использования прокси) ТОЖЕ возбуждает исключение при разных условиях способах доступа ?


 
SortoVaritu ©   (2009-06-25 13:21) [99]

Так точно. FTPCommand выбрасывает одну и ту же ошибку


 
Сергей М. ©   (2009-06-25 13:33) [100]

А как узнал, что имеенно FTPCommand, а не что-то иное ?
В отладике пошагово или как ?


 
SortoVaritu ©   (2009-06-25 14:54) [101]

Да. Пошагово отлаживал.


 
Сергей М. ©   (2009-06-25 15:51) [102]

А декларация FTPCommand у тебя случаем не кривая ?
Покажи-ка ее ..


 
SortoVaritu ©   (2009-06-25 16:02) [103]

function FtpCommand(
hConnect: HINTERNET;
fExpectResponse: BOOL;
dwFlags: DWORD;
lpszCommand: PChar;
dwContext: DWORD;
var hFtpCommand: HINTERNET): BOOL;
stdcall; external "wininet.dll" name "FtpCommandA";
Если ты это имеешь ввиду, то я же у тебя ее и скопировал. Только вот последний параметр меня смущает.


 
Сергей М. ©   (2009-06-25 16:29) [104]


> последний параметр меня смущает


Он тебя не должен смущать, ибо у меня код успешно работает.
А что собссно смущает-то ? Уже жевали-пережевали этот вопрос в начале топика ..


 
SortoVaritu ©   (2009-06-25 17:12) [105]

Хотя в общем ты прав. Думаешь проблема с компилятором или с с системой? Возможно с Wininet.dll?


 
Сергей М. ©   (2009-06-25 17:25) [106]

Ты экспериментируешь в заведомо "чистом" тестовом проекте или в "боевом" ?


 
SortoVaritu ©   (2009-06-25 18:21) [107]

В чистом проекте. Твой код я вставил в абсолютно чистый проект.



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

Текущий архив: 2011.11.20;
Скачать: CL | DM;

Наверх




Память: 0.66 MB
Время: 0.013 c
2-1311737467
Abcdef123
2011-07-27 07:31
2011.11.20
Сохранение положения форм при последующем входе в программу.


15-1311798599
Юрий
2011-07-28 00:29
2011.11.20
С днем рождения ! 28 июля 2011 четверг


15-1311193788
Юрий
2011-07-21 00:29
2011.11.20
С днем рождения ! 21 июля 2011 четверг


15-1311061925
Unknown555
2011-07-19 11:52
2011.11.20
оператор goto


15-1311362178
Dimka Maslov
2011-07-22 23:16
2011.11.20
Кто нибудь знает