HOD Text Processor - Команды языка.
FTPlist @приемник_списка_директорий , @приемник_списка_файлов , @приемник_списка_длин_файлов , @имя_интересущего_файла_или_каталога(если пуст, то список всех)
Смена рабочего каталога на сервере.
Модифицирует регистр $F:
$F=0 Успешно
$F=1 Управляющее соединение потеряно или не соединено с сервером
$F=2 Нет такого каталога или файла на сервере
Исключения при выполнении:
Если Ваш компьютер не содержит библиотеки WINSOCK32.DLL или эта библиотека не была успешно загружена и инициализирована, то команда игнорируется модификация $F не производится.
Необходимо указывать разные регистры в качестве приёмника списка файлов, каталогов и длин файлов, в противном случае команда игнорируется.
Примечание:
Потеря управляющего соединения равноценна выполненной команде FTPdisconnect выполнение FTP команд после этого невозможно и требуется соединиться вновь (FTPconnect).
Если в качестве @имя_интересущего_файла_или_каталога указана пустая строка, то получает список всех файлов и каталогов, находящихся в рабочем каталоге, например:
FTPlist @1, @2, @3, ""
Для получения сведений о конкретном файле (что может потребоваться, когда рабочий каталог содержит много файлов и загрузка всего списка длительна), допустимо указывать имя файла или каталога, на который необходимо получить информацию, например:
FTPlist @1, @2, @3, "index.htm"
Если в качестве объекта, на который требуется получить информацию, указан не файл, а каталог на сервере, то команда получает список содержимого каталога.
Для проверки каталога на наличие, лучше применять команду FTPcwd, так как в этом случае не происходит передачи лишней информации, например:
FTPcwd "info"
Jmp=N $F, 0, YDIR
Jmp=N $F, 1, NOCONNECT
Jmp $F, 2, NDIR
YDIR FTPcwd ".."
NDIR
Обратите внимание, длины файлов команда получает в текстовом виде, разделяя их между собой нулевым байтом ("\00").
Если представить строки в приёмнике имён файлов и приёмнике длин файлов как последовательности элементов, то файлу под номером элемента 1 будет соответствовать значение длины под номером элемента 1, что демонстрирует следующий пример:
; FACE="","11"
; @u0=E, "FTP сервер:"
; @u1=E, "Пользователь:"
; @u2=E, "Пароль:"
; @u3=E, "Имя директории:"
Cls
; соединяемся с сервером
PrintT 0,0,"FTPconnect"
FTPconnect @u0, 21, @u1, @u2
PrintN 0,20,$F
Jmp!=N $F,0,EXIT
; получаем список файлов и каталогов из каталога по умолчанию
PrintT 0,0,"FTPlist"
FTPlist @0, @1, @2, ""
PrintN 0,20,$F
; получаем имя файла 0 в списке
GetEl @9, @1, "\00", 0
; выводим имя файла в консоль
PrintT 1,0,@9
; получаем длину файла 0 в списке
GetEl @9, @2, "\00", 0
; выводим длину файла в консоль
PrintT 1,20,@9
; получаем имя файла 1 в списке
GetEl @9, @1, "\00", 1
; выводим имя файла в консоль
PrintT 2,0,@9
; получаем длину файла 1 в списке
GetEl @9, @2, "\00", 1
; выводим длину файла в консоль
PrintT 2,20,@9
; закрываем соединение с сервером
PrintT 0,0,"FTPdisconnect "
FTPdisconnect
Содержание