Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » FTP передача файлов на сервер используя логин и пароль

Страниц (4): « 1 [2] 3 4 »
 

11. Zireael - 01 Мая, 2021 - 08:54:46 - перейти к сообщению
 Цитата:
второй строка я так понял куда запишется полученный путь, я не понял что передавать в третий параметр?

CODE:
char buf[256];
int len_buf=256;
FtpGetCurrentDirectory(connect, address(#buf[0]), address(#len_buf));
messagebox(len_buf);
messagebox(format(#buf[0], len_buf));
12. ivantu - 01 Мая, 2021 - 08:56:59 - перейти к сообщению
Спасибо, блин но откуда вы знаете что нужно передавать в address() , когда же я научусь пользоваться инструкциями ... (

кстати вернуло "/"

А как теперь поменять путь?

Все, путь прописал сам., спасибо еще раз.
13. Zireael - 01 Мая, 2021 - 09:58:37 - перейти к сообщению
 Цитата:
вернуло "/"

Сколько байт записало в буфер?
 Цитата:
путь прописал сам

А до этого почему не работало?
(Добавление)
 Цитата:
но откуда вы знаете что нужно передавать в address()

Из описания функции:
LPSTR lpszCurrentDirectory - Pointer to a null-terminated string (указатель на строку).
LPDWORD lpdwCurrentDirectory - Pointer to a variable that specifies the length of the buffer (указатель на переменную, которая содержит размер массива, куда запишется путь).
Строка это массив char, а переменная это int, т. к. unsigned long (DWORD) в кибор нет.
14. ivantu - 01 Мая, 2021 - 12:03:14 - перейти к сообщению
 Zireael пишет:
А до этого почему не работало?


не могу сказать, было так не работало:

 Цитата:
if(FtpSetCurrentDirectory(connect, server_name)>0) // если перешло в папку вернёт 1


прописал вручную путь относительно корневого каталога /
 Цитата:
if(FtpSetCurrentDirectory(connect, "/public_html/botfolder/"Подмигивание>0) // если перешло в папку вернёт 1


 Zireael пишет:
Сколько байт записало в буфер?

messagebox(len_buf) - вывел 1
(Добавление)
Подскажите пожалуйста, этим способом можно текстовый файл открыть для редактирования на сервере?
(Добавление)
Подскажите пожалуйста, этим способом можно текстовый файл открыть для редактирования на сервере?
Редактировать понял как.
15. Zireael - 01 Мая, 2021 - 12:32:02 - перейти к сообщению
 Цитата:
можно текстовый файл открыть для редактирования на сервере?

FtpOpenFileA
InternetReadFile
InternetWriteFile
16. ivantu - 01 Мая, 2021 - 12:33:03 - перейти к сообщению
 Zireael пишет:
FtpOpenFileA
InternetReadFile
InternetWriteFile

Постараюсь сам.
(Добавление)
Вот что получилось, выводит только кракозябры.

CODE:

#define GENERIC_READ 0x80000000
#define FTP_TRANSFER_TYPE_BINARY 0x00000002
char buf2[256];
FtpOpenFile( connect, address(#buf2[0]), GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, -1);
messagebox(format(#buf2[0]));
17. Zireael - 01 Мая, 2021 - 13:03:51 - перейти к сообщению
 Цитата:
#define GENERIC_READ 0x80000000

CODE:
#define GENERIC_READ -2147483648

 Цитата:
выводит только кракозябры.

Функция FtpOpenFile не читает и не записывает, а только открывает файл для чтения или записи. Вторым параметром принимает имя файла. Если какой-то параметр не используется, то обычно передаётся 0, а не -1.
18. ivantu - 01 Мая, 2021 - 13:10:16 - перейти к сообщению
 Zireael пишет:
#define GENERIC_READ -2147483648

хм... я другое значение нашел, странно...

CODE:
pub const GENERIC_READ: DWORD = 0x80000000;

(Добавление)
Возвращаемое значение
Возвращает дескриптор в случае успеха или NULL в противном случае. Чтобы получить определенное сообщение об ошибке, вызовите GetLastError.

Так, я получил дескриптор , как теперь получить текст?
19. Zireael - 01 Мая, 2021 - 13:17:45 - перейти к сообщению
 Цитата:
0x80000000

Это правильное значение, только в кибор нет unsigned int.
 Цитата:
получил дескриптор , как теперь получить текст?

Названия функций и их описание совсем ни о чём не говорят? InternetReadFile.
20. ivantu - 01 Мая, 2021 - 13:42:53 - перейти к сообщению
Вот так пробую, что то не получается.

CODE:

read_file=FtpOpenFile( connect, "1.txt", GENERIC_READ, FTP_TRANSFER_TYPE_BINARY, 0);
if(read_file>0) {
char buff[256];
InternetReadFile(read_file, address(#buff[0]), size(#buff[0]), 0);
messagebox(format(#buff[0]));
}

Powered by ExBB FM 1.0 Final