Читать «Язык программирования Euphoria. Справочное руководство» онлайн - страница 105
Автор неизвестен
Имя пути, которое вы подаёте в walk_dir(), не должно содержать символов догадок (* или ?). При каждом вызове функция работает только с единственным каталогом (и его подкаталогами), имя которого подано в неё в качестве аргумента.
Пример:
function look_at(sequence path_name, sequence entry)
-- данная функция воспринимает два ряда как аргументы
printf(1, "%s\\%s: %d\n",
{path_name, entry[D_NAME], entry[D_SIZE]})
return 0 -- проход продолжается
end function
exit_code = walk_dir("C:\\MYFILES", routine_id("look_at"), TRUE)
Пример программы:
euphoria\bin\search.ex
См. также:
dir, current_dir
where
Синтаксис:
include file.e
a1 = where(fn)
Описание:
Данная функция выдаёт текущую байтовую позицию в файле fn. Байтовая позиция обновляется при чтении, записи или переходах в файле. Эта позиция даёт место в файле, где очередной байт буден прочитан или записан.
См. также:
seek, open
wildcard_file
Синтаксис:
include wildcard.e
i = wildcard_file(st1, st2)
Описание:
Выдаёт 1 (истина), если имя файла st2 совпало с вашей догадкой (маской, шаблоном) st1. Выдаёт 0 (ложь) в противном случае. Данная функция похожа на ту, которая имеется в DOS для шаблонных операций, но в некоторых случаях лучше неё. Символ догадки '*' означает 0 или более символов, допустимых в именах файлов, символ догадки '?' означает единственный любой из допустимых символов. Под Linux и FreeBSD сравнение символов чувствительно к регистру, то есть, строчные и прописные буквы не равнозначны. Под DOS и Windows - не чувствительно, строчные и прописные буквы равнозначны.
Комментарии:
Вы можете использовать эту функцию для проверки выходных данных функции dir(), чтобы выделять именно те файлы, которые требуются пользователю вашей программы.
В функции DOS "*ABC.*" дает шаблон для
Пример 1:
i = wildcard_file("AB*CD.?", "aB123cD.e")
-- i будет равно 1 под DOS или Windows, но будет равно 0 под Linux или FreeBSD
Пример 2:
i = wildcard_file("AB*CD.?", "abcd.ex")
-- i будет равно 0 под всеми системами, так как расширение имени
-- файла содержит 2 символа, а не 1.
Пример программы:
bin\search.ex
См. также:
wildcard_match, dir
wildcard_match
Синтаксис:
include wildcard.e
i = wildcard_match(st1, st2)
Описание:
Данная функция выполняет общее сравнение строки с образцом, который может содержать и символы догадок '*' и '?'. Функция выдаёт 1 (истина), если строка st2 совпадает с образцом st1. В противном случае выдаётся 0 (ложь). Символ догадки '*' означает любые 0 или более символов. Символ догадки '?' означает любой единственный символ. Сравнение чувствительно к регистру, то есть, строчные и прописные буквы различаются.