Запись в текстовый файл.


 

1. Задание: Создать типизированный файл, содержащий сведения об учениках некоторого класса (фамилия и две отметки за полугодие) и вывести фамилии учеников, занимающихся только на 4 и 5.

2. В рабочей области редактора наберите код программы, представленный на листинге 1.

Листинг 1.

PROGRAM Primer_3;

type { Описание типа "запись": сведения об ученике}

R = Record { фамилии учеников не должны содержать более}

{25 символов}

famil: String[25]; { Фамилия}

oc1 : 1..5; { Первая отметка}

oc2 : 1..5; { Вторая отметка}

end;

var F: File of R; { Описание файла записей}

a: R; { Сведения об одном ученике}

k: Integer; {Вспомогательная переменная - номер ученика}

BEGIN

Assign(F,'SPISOK.TXT'); (* Ввод списка класса *)

WriteLn('Ввод списка класса закончите нажатием ');

WriteLn('клавиши "^".');

Rewrite(F); { Файл открыли для записи }

k:=0; { Номер ученика }

Repeat

k:=k+1;

Write('Введите сведения на ',k,' ученика: ');

ReadLn(a.famil); { Запись в файл сведений об одном ученике }

If a.famil<>'^' then

begin

ReadLn(a.oc1);

ReadLn(a.oc2)

Write(F,a)

end;

WriteLn

until a.famil='^';

Close(F); { Закрываем файл }

(* Контрольный вывод списка класса *)

Reset(F); { Открываем файл для чтения }

WriteLn('Сведения об учениках класса: ');

While NOT EOF(F) do

begin {Чтение сведений об одном ученике из файла}

Read(F,a);

Write(a.famil,' ',a.oc1,' ',a.oc2);

WriteLn

end;

Close(F);

Reset(F); {Вывод списка успевающих учеников }

WriteLn('Список успевающих учеников: ');

While NOT EOF(F) do

begin

Read(F,a);

If (a.oc1>=4) AND (a.oc2>=4) { Успевающий ли ученик? } then WriteLn(a.famil)

end;

Close(F);

ReadLn

END.

 

3. Проведите отладку программы и проверьте результат в полученном текстовом файле.

 

2.2 Применение текстовых файлов.

1. Задание: В текстовом файле f.txt записаны (вперемешку) целые числа: поровну отрицательных и положительных. Используя только один вспомогательный файл, переписать в текстовый файл h.txt все эти числа так, чтобы:

§ порядок отрицательных чисел был сохранен;

§ порядок положительных чисел был сохранен;

§ любые два числа, стоящие рядом, имели разные знаки.

2. Решение: Если бы нам разрешили использовать два вспомогательных файла, мы бы просто переписали все положительные числа в один из них, а все отрицательные – в другой. А затем объединили бы два этих файла. В нашем же случае придется переписать во вспомогательный файл только положительные числа. Затем при «сборке» мы будем считывать из вспомогательного файла «все подряд», а из исходного – только отрицательные числа..

3. В рабочей области редактора наберите код программы, представленный на листинге 2.

Листинг 2.

Program z1;

var f,g,h: text;

k: integer;

begin

assign(f,’f.txt’);

assign(g,’g.txt’);

assign(h,’h.txt’);

{Переписываем положительные числа в доп.файл}

reset(f);

rewrite(g);

while not eof(f) do

begin read(f,k);

if k>0 then write(g,’ ‘,k);

end;

{Собираем числа в новый файл h.txt}

reset(f);{Возвращаем указатель на начало файла f}

reset(g);

rewrite(h);

while not eof(g) do

begin read(g,k);

write(h,k,’ ‘);

repeat

read(f,k)

until k<0;

write(h,k,’ ‘);

end;

close(f);

close(g);

close(h);

end.

4. Проведите отладку программы и проверьте результат в полученном текстовом файле.

 

2.3 Использование директив {$I}.

Задание: При помощи системной функции IOResult проверьте существование файла.

Наберите код программы, представленный на листинге 3.

Листинг 3.

. . .

flag:= false;

write('Введите имя файла: ');

repeat

readln(s); {s:string}

{$I-}

assign(f,s);

reset(f);

case IOResult of

0: flag:= true;

3: write('Путь к файлу указан неверно.
Измените путь: ');

5: write('Доступа к файлу нет. Измените имя файла: ');

152: write('Такого диска нет. Измените имя диска: ');

else write('Такого файла нет. Измените имя файла: ');

end;

until flag;

{$I+}

 

Проверьте работу программы путем задания правильного и неправильного имени файла (пути, диска).

ПРИМЕНЕНИЕ ОБЪЕКТНО-ОРИЕНТРОВАННЫХ КОМПОНЕНТОВ
В ИНСТРУМЕНТАЛЬНОЙ СРЕДЕ DELPHI

Общие замечания

Приступая к созданию законченного приложе­ния Windows, необходимо пом­нить:

• Процесс создания программы в Delphi состоит из двух шагов: сначала нужно создать форму программы (диалоговое окно), затем — написать процедуры обработки событий. Форма при­ложения (так принято называть прикладные программы, ра­ботающие в Windows) создается путем добавления в форму компонентов и последующей их настройки.

• В форме практически любого приложения есть компоненты, которые обеспечивают интерфейс (взаимодействие) между программой и пользователем. Такие компоненты называют базовыми. К базовым компонентам можно отнести:

Label — поле вывода текста;

Edit — поле ввода/редактирования текста;

Button — командную кнопку;

CheckBox — независимую кнопку выбора;

RadioButton — зависимую кнопку выбора;

ListBox — список выбора;

ComboBox — комбинированный список выбора.

• Вид компонента, его размер и поведение определяются значениями свойств (характеристик) компонента (описание свойств базовых компонентов можно найти в описании практических заданий).

• Основную работу в программе выполняют процедуры обработки событий (описание основных событий можно найти в справочнике, во второй части книги).

• Исходную информацию программа может получить из полей ввода/редактирования (компонент Edit), списка выбора (компонент ListBox) или комбинированного списка (компо­нент ComboBox). Для ввода значений логического типа можно использовать компоненты CheckBoxи RadioButton.

• Результат программа может вывести в поле вывода текста (компонент Label) или в окно сообщения (функция MessageDlg).

• Для преобразования текста, например находящегося в поле ввода/редактирования, в целое число нужно использовать функцию StrToInt, а в действительное число — функцию StrToFloat, для преобразования целого, например значения переменной, в строку нужно использовать функцию intTostr, а для преоб­разования вещественного — функцию FloatToStr или FloatToStrF.

 



Дата добавления: 2017-01-26; просмотров: 1460;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.013 сек.