Как работать с текстовым файлом? - Pascal ABC
Формулировка задачи:
Подскажите пожалуйста:
Дан текстовый файл, в котором хранятся данные об учениках нескольких школ: фамилия, имя, отчество, адрес (улица, дом, квартира), школа и класс. Вывести на экран фамилию, имя и адрес тех учеников, кто учится в данной школе
в старших классах (номер школы вводить с клавиатуры).
Программа есть,помогите разобраться с текстовым файлом
Не могу как его составить, в каком формате и как вставить его в код
Решение задачи: «Как работать с текстовым файлом?»
textual
Листинг программы
Program B; Type pupil = Record fio:String; adr:String; cl:integer; shkola:integer; End; mas=Array[1..500] of pupil; Var a:mas; i,m,n:integer; f:text; s:string; Begin n:=0; assign(f,'shkola.txt');reset(f); while not Eof(f) do begin inc(n); readln(f,s); s:=trim(s); a[n].fio:=copy(s,1,pos('ул.',s)-1); delete(s,1,pos('ул.',s)-1); a[n].adr:=copy(s,1,pos('ш.',s)-1); delete(s,1,pos('ш.',s)+1); s:=trimleft(s); a[n].shkola:=StrToInt(copy(s,1,pos(' ',s)-1)); delete(s,1,pos('л',s)); s:=trimleft(s); a[n].cl:=StrToInt(copy(s,1,length(s))); end; close(f); for i:=1 to n do writeln(a[i].fio:30,a[i].adr:30,a[i].cl:7,a[i].shkola:7); writeln; writeln('Введите номер школы, учащиеся которой Вас интересуют'); readln(m); writeln('Вывести на экран фамилию, имя и адрес тех учеников, кто учится в данной школе в старших классах'); for i:=1 to n do begin if (a[i].shkola=m) and (a[i].cl>9) then writeln(a[i].fio:30,a[i].adr:30); end; readln; end.
Объяснение кода листинга программы
- Создается тип данных
pupil
с полямиfio
,adr
,cl
иshkola
. - Создается массив
mas
типаpupil
на 500 элементов. - Объявляются переменные
a
,i
,m
,n
иf
для работы с массивом. - Задается имя файла для чтения и записи -
shkola.txt
. - В цикле while считывается информация из файла до конца файла.
- Каждая строка обрабатывается следующим образом:
- С помощью функции
trim
удаляются лишние пробелы в начале и конце строки. - Поле
fio
выделяется из строки. - Поле
adr
выделяется из строки. - Поле
cl
выделяется из строки. - Поле
shkola
выделяется из строки. - Строка с номером школы записывается в соответствующее поле ученика.
- Строка с адресом школы записывается в соответствующее поле ученика.
- Номер класса ученика записывается в соответствующее поле ученика.
- Номер школы ученика записывается в соответствующее поле ученика.
- С помощью функции
- После окончания чтения файла закрывается файл.
- Выводится запрос на ввод номера школы, после чего выводится запрос на ввод номера класса старшего класса интересующей школы.
- В цикле for перебираются элементы массива
mas
от 1 до n. - Если номер школы равен введенному номеру и класс старше 9, то выводится фамилия, имя и адрес ученика.
- Программа завершается с помощью функции
readln
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д