Ввод нетипизированного файла и поиск в нём - Pascal
Формулировка задачи:
Здравствуйте. Мучаюсь с нетипизированными файлами. Задача состоит в том, чтобы реализовать ввод информации с клавиатуры в файл и организовать поиск в файле с последовательным доступом. Информации по поводу нетипизированных файлов достаточно мало, т.к. они используются редко (но метко).
Подскажите, что я делаю не так?
Мой набросок: (Pos не работает, знаю, однако иначе осуществлять поиск пока что не умею).
Решение задачи: «Ввод нетипизированного файла и поиск в нём»
textual
Листинг программы
Uses Crt; Var F : File; K,p : string[20];{больше не нужно если пишем слова} name:string[12]; n:integer; begin writeln('Введите имя файла, который мы создадим'); readln(name); Assign(F,name) ; Rewrite(F,20) ; {Открыть файл для записи 20 байт, емкость строки} Writeln('Файл ',Name,' открыт для присоединения нового текста ') ; Writeln('Вводите текст для записи:'); Writeln; repeat Write (' :>') ; Readln(p); BlockWrite(F,p,1); {запишем 1 блок в 20 байт} until readkey=#27;{конец Escape} Writeln; Writeln('Присоединение нового текста окончено, нажмите Enter...'); Write('Введите то, что ищем '); Readln(K) ; Reset(F,20) ; N:=0; While not Eof(F) do begin BlockRead(F,p,1); if p=K then n:=n+1; end; Close(F); writeln('Количество слов ',K,' в файле - ',n); readln end.
Объяснение кода листинга программы
- Объявлены переменные:
F
- файлK
- строка для поискаp
- строка для записиname
- имя файлаn
- счетчик найденных слов
- Пользователю предлагается ввести имя файла для создания.
- Файл открывается для записи с помощью функции
Assign(F,name)
. - Файл записывается с помощью функции
BlockWrite(F,p,1)
. - Пользователю предлагается ввести текст для записи в файл.
- Когда введен текст, он записывается в файл с помощью функции
BlockWrite(F,p,1)
. - Файл закрывается для записи с помощью функции
Close(F)
. - Пользователю предлагается ввести строку для поиска.
- Файл открывается для чтения с помощью функции
Reset(F,20)
. - Счетчик
n
инициализируется нулем. - Пока файл не достиг конца, выполняется цикл, в котором читается блок данных из файла с помощью функции
BlockRead(F,p,1)
. - Если прочитанная строка совпадает со строкой поиска, счетчик
n
увеличивается на единицу. - Файл закрывается для чтения с помощью функции
Close(F)
. - Выводится сообщение о количестве найденных слов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д