Читать «Язык программирования 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.*" дает шаблон для всех файлов. Функция же wildcard_file("*ABC.*", s) выделит те файлы, имя которых заканчивается буквами "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 или более символов. Символ догадки '?' означает любой единственный символ. Сравнение чувствительно к регистру, то есть, строчные и прописные буквы различаются.