Работа с текстовыми документами - Pascal
Формулировка задачи:
Необходимо занести в файл фамилии, имени студентов вашей группы. вывести
на экран фамилии и имена всех студентов, стоящих по списку после вас.
Помогите пожалуйста.
Решение задачи: «Работа с текстовыми документами»
textual
Листинг программы
var f: text; s, im, fam: string; sim, sfam: string; i, n: integer; begin n := 10; Assign(f, 'in.txt'); rewrite(f); writeln('Введите ', n, ' фамилий и имен: '); for i := 1 to n do begin readln(s); writeln(f, s); end; close(f); writeln('Введите вашу фамилию: '); readln(sfam); writeln('Введите ваше имя: '); readln(sim); Reset(f); i := 0; while not Eof(f) do begin readln(f, s); Fam := Copy(s, 1, Pos(' ', s) - 1); Delete(s, 1, Pos(' ', s)); im := s; if (fam = sfam) and (im = sim) then inc(i); if i <> 0 then writeln(Fam, ' ', im); end; Close(f); end.
Объяснение кода листинга программы
- Объявлены переменные:
- f: text;
- s, im, fam: string;
- sim, sfam: string;
- i, n: integer;
- Переменной n присваивается значение 10;
- Файл с именем
in.txt
открывается на запись в переменную f; - В цикле от 1 до n происходит считывание фамилии и имени из ввода пользователя и запись их в файл;
- Закрытие файла f;
- Ввод фамилии и имени пользователя;
- Файл с именем
in.txt
открывается на чтение в переменную f; - Переменная i инициализируется нулем;
- В цикле до тех пор, пока не достигнут конец файла, происходит считывание строки из файла и разделение её на фамилию и имя;
- Проверка совпадения фамилии и имени пользователя с фамилией и именем в текущей строке;
- Если совпадение найдено, увеличивается значение переменной i;
- Если значение переменной i не равно нулю, выводится фамилия и имя;
- Закрытие файла f;