В процессе подготовки к ЕГЭ по информатике учащимся предстоит изучить множество тем, связанных с работой с компьютером. Одна из таких тем — поиск файлов. Это базовый навык, который может пригодиться как в реальной жизни, так и в рамках экзаменационных заданий по файловым системам
Очень часто возникает необходимость найти файл, когда известна только его часть — например, начало имени или расширение. Именно в таких случаях на помощь приходят маски поиска, позволяющие задать шаблон и отобрать нужные файлы из общего списка.
Перед тем как перейти к практике, важно понимать, из чего состоит имя файла:
Имя файла — это его основная часть (например, отчёт);
Расширение файла — обозначает его тип и отделяется точкой (например, .docx, .txt, .exe).
Полное имя файла выглядит как: имя.расширение, например:
таблица.xls
резюме.docx
презентация.ppt
Маска поиска — это специальный шаблон, с помощью которого можно задать условия поиска файлов. Маска может включать обычные символы, а также специальные (подстановочные) знаки, называемые джокерами.
|
Символ |
Назначение |
Пример |
Результат поиска |
|
* |
Заменяет любое количество любых символов (в том числе 0) |
*.txt |
Все файлы с расширением .txt |
|
? |
Заменяет ровно один любой символ |
file?.doc |
file1.doc, fileA.doc, но не file12.doc |
|
[abc] |
Один из символов a, b или c |
[ab]12.txt |
a12.txt, b12.txt |
|
[a-c] |
Любой символ в указанном диапазоне |
[a-c]*.doc |
a.doc, b_file.doc, c_text.doc |
Рассмотрим самые распространённые ситуации, которые встречаются как на практике, так и в заданиях ЕГЭ по информатике.
Пример 1: Найти файлы, начинающиеся с определённой буквы
Маска: д*.docx
Результат: будут найдены все файлы, имена которых начинаются на "д", и у которых расширение .docx.
Примеры: доклад.docx, домашнее_задание.docx.
Пример 2: Найти все изображения формата JPEG
Маска: *.jpg
Результат: отображаются все файлы с расширением .jpg, независимо от их имени.
Примеры: фото1.jpg, лето2023.jpg.
Пример 3: Найти файлы с конкретной длиной имени
Маска: ????.txt
Результат: только файлы, в имени которых ровно 4 символа, и с расширением .txt.
Примеры: тест.txt, дано.txt.
В экзаменационной части ЕГЭ по информатике часто встречаются задания, где требуется:
Указать, какие файлы попадут под заданную маску;
Подобрать подходящую маску для поиска нужных файлов;
Посчитать количество найденных файлов по маске.
Пример задания:
В каталоге находятся файлы:
data.txt, data1.txt, data2.doc, dataset.txt, doc1.txt, doc.txt
Укажите, какие файлы будут найдены по маске data?.txt.
Разбор:
data.txt — не подходит (нет символа после a);
data1.txt — подходит;
dataset.txt — не подходит (слишком длинное имя);
data2.doc — не подходит (не то расширение).
Ответ: data1.txt
Практика поиска на компьютере
Чтобы попрактиковаться в реальной среде, достаточно:
Открыть проводник Windows;
Перейти в нужную папку;
Ввести в поле поиска маску — например, *.pdf или отчёт?.docx;
Изучить список найденных файлов.
Тренируйтесь с различными масками и экспериментируйте с файлами разных форматов.
Создайте в отдельной папке файлы с разными именами и попробуйте найти их с помощью различных масок.
При выполнении заданий на ЕГЭ обращайте внимание на количество символов, расположение символов и расширение файла.
Помните, что символ * может означать и отсутствие символов, а ? — всегда только один.
Важные термины
|
Термин |
Определение |
|
Маска поиска |
Шаблон, включающий специальные символы для фильтрации файлов |
|
Расширение файла |
Тип файла, определяющий его формат и назначение |
|
Джокер |
Специальный символ (*, ? и др.), используемый в масках поиска |
|
Каталог |
Папка, в которой расположены файлы и другие каталоги |
Для закрепления материала ознакомимся с простой программой на языке Pascal, которая обеспечивает поиск файлов по маске:
program FileSearchExample;
uses
SysUtils;
var
SearchRec: TSearchRec;
Mask: string;
Path: string;
begin
Write('Введите путь к директории (например, C:\Test\): ');
Readln(Path);
Write('Введите маску поиска (например, *.txt): ');
Readln(Mask);
if FindFirst(Path + Mask, faAnyFile, SearchRec) = 0 then
begin
repeat
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
Writeln('Найден файл: ', SearchRec.Name);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end
else
Writeln('Файлы не найдены по заданной маске.');
end.
Примечание: Для запуска этой программы подойдёт Free Pascal или Lazarus.
A) Один любой символ
B) Конец имени файла
C) Любое количество любых символов
D) Только буквы латинского алфавита
A) отч?.docx
B) *отч*.docx
C) отч*.docx
D) *.отч.docx
A) 4
B) 3
C) 2
D) 1
A) Имя длиной от 1 до 4 символов
B) Имя длиной ровно 4 символа
C) Любое имя с расширением .txt
D) Имя начинается на ?
A) *2023.*
B) 2023*.*
C) *.2023
D) 2023.*
A) #
B) *
C) ?
D) .
A) Будут найдены только скрытые файлы
B) Будут найдены все файлы с расширением .jpg
C) Будут найдены только файлы, начинающиеся на j
D) Не будут найдены никакие файлы.