Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
AdryV
Отправлено: 15 Июля, 2019 - 14:33:56
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




в общем нужно редактировать файлы на ftp сервере, как это все провернуть
что бы попасть на ftp нужно ввести адрес, логин, пароль.
далее на ftp найти файл по названию(или же просто открыть)
прочитать содержимое файла
отредактировать
сохранить и записать обратно на ftp
завершить соединение

(Отредактировано автором: 15 Июля, 2019 - 14:35:03)

 
 Top
Zireael
Отправлено: 15 Июля, 2019 - 14:40:02
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017  
Репутация: 585




Пример как скачать файл:
CODE:
external(INT, "InternetOpen", "InternetOpenA", "Wininet.dll" );
external(INT, "InternetCloseHandle", "InternetCloseHandle", "Wininet.dll" );
external(INT, "InternetConnect", "InternetConnectA", "Wininet.dll" );
external(INT, "FtpSetCurrentDirectory", "FtpSetCurrentDirectoryA", "Wininet.dll" );
external(INT, "FtpGetFile", "FtpGetFileA", "Wininet.dll" );

int open, _close, connect, file, catalog;

string ftp="zireael.zzz.com.ua"; // фтп, исправить на свой
string login="логин"; // исправить на свой
string pass="пароль"; // исправить на свой

open=InternetOpen("Microsoft Internet Explorer", 0, 0, 0, 0);
connect=InternetConnect(open, ftp, 21, login, pass, 1, 134217728, 0);
catalog=FtpSetCurrentDirectory(connect, ftp);
file=FtpGetFile(connect, "time.txt", "time.txt", 0, 0, 0); // скачать файл time.txt в папку с кибор
_close=InternetCloseHandle(connect);

Всё остальное примерно также.
 
 Top
AdryV
Отправлено: 15 Июля, 2019 - 15:49:10
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




где может быть нюанс?
у меня почти все параметры равны 0
 Zireael пишет:
open=какоето число.... чет тип (134217728 но значение меньше....)
connect=0
catalog=0
file=0

(Добавление)
вот как настроено в тотал коммандер(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Dantes3000
Отправлено: 15 Июля, 2019 - 17:03:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




AdryV , всё что угодно может быть. Чтобы узнать текст ошибки - надо отдельно функции вызывать.
 
 Top
AdryV
Отправлено: 15 Июля, 2019 - 17:14:42
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




ну логически если функция вызывается правильно будет из нее возвращать 1(типа удача)
но мне почему то возвращают 0..... хотя думаю что параметры вызова функции правильные....
мож у этих функций есть чет типа дебаг режима.... что бы отследить. Подмигивание
всем спс за помощь Подмигивание
 
 Top
Kibor
Отправлено: 15 Июля, 2019 - 17:24:30
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8224
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Подробнее о WinInet
тут надо читать или еще где то про WinInet
 
 Top
Zireael
Отправлено: 16 Июля, 2019 - 02:06:07
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4467
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
мож у этих функций есть чет типа дебаг режима.... что бы отследить.

InternetGetLastResponseInfoA.
CODE:
external(INT, "InternetOpen", "InternetOpenA", "Wininet.dll" );
external(INT, "InternetCloseHandle", "InternetCloseHandle", "Wininet.dll" );
external(INT, "InternetConnect", "InternetConnectA", "Wininet.dll" );
external(INT, "FtpSetCurrentDirectory", "FtpSetCurrentDirectoryA", "Wininet.dll" );
external(INT, "FtpGetFile", "FtpGetFileA", "Wininet.dll" );

external(INT, "InternetGetLastResponseInfo", "InternetGetLastResponseInfoA", "Wininet.dll" );

int open, _close, connect, file, catalog;
string ftp="zireael.zzz.com.ua"; // фтп, исправить на свой
string login="1111"; // исправить на свой
string pass="2222"; // исправить на свой

char c[9999];
int error, size_c=sizearray(c);
open=InternetOpen("Microsoft Internet Explorer", 0, 0, 0, 0);
if(open)
{
connect=InternetConnect(open, ftp, 21, login, pass, 1, 134217728, 0);
if(connect==0)
{
InternetGetLastResponseInfo(address(#error), address(#c[0]), address(#size_c));
messagebox(format(#c[0], size_c));
}
_close=InternetCloseHandle(connect);
}

В данном случае напишет что не выполнен вход, потому что логин и пароль неправильные.

Если будет где потестить, то могу посмотреть что не работает.
 
 Top
AdryV
Отправлено: 16 Июля, 2019 - 09:34:49
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016  
Репутация: 11




в общем разобрался помогла функция) InternetGetLastResponseInfo
 Zireael пишет:
catalog=FtpSetCurrentDirectory(connect, ftp);

тут я не правильно указывал путь к самому каталогу где лежит файл time.txt
у меня путь к рабочей папке идет чет типа этого
/domains/сайт.xsph.ru/public_html/write_read/pc_id/
а если писать путь ftp+"/domains/сайт.xsph.ru/public_html/write_read/pc_id/" это уже не правильно.

 Zireael пишет:
file=FtpGetFile(connect, "time.txt", "time.txt", 0, 0, 0); // скачать файл time.txt в папку с кибор

тут нужно указывать путь где сохранить файл просто time.txt не сохраняет в папке с кибор ахз где он девается
file=FtpGetFile(connect, "time.txt", "c:\time.txt", 0, 0, 0);
так заработало

всем спасиб Подмигивание
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by