Процедуры реализации пунктов меню sortMenu 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Процедуры реализации пунктов меню sortMenu



11.3.9.1 Реализация пункта меню «Сортировка файла по фамилиям»

Наличие описанной выше процедуры сортировки файла позволяет достаточно просто реализовать эту функцию меню.

//Вызов сортировки по фамилиям

procedure TfrmAtt.mnuSortFamClick(Sender: TObject);

var f:TAttFile;

Begin

openAttFile(f);

sortAttFile(f);

showFileInGrid(f, StringGrid3);

CloseFile(f);

end;

11.3.9.2 Реализация пункта меню «Поиск студента по фамилии»

Эта процедура связана с пунктом меню «Поиск студента по фамилии».

// Поиск студента по фамилии

procedure TfrmAtt.mnuFindInSortClick(Sender: TObject);

var f:TAttFile; pos: integer; r: TAttRec; fam: TName;

Begin

fam:=inputBox('Поиск зарплаты по фамилии','Введите фамилию','');

openAttFile(f);

sortAttFile(f);

pos:= findPosInSortFile(fam,f);

if pos < 0 then showMessage(fam+' не найдено')

Else begin

seek(f,pos);

read(f,r);

showMessage('Результаты аттестации ' + fam + #13 +

'Ср.балл = ' + floatToStr(r.ball) + #13 +

'Количество неуд = ' + intToStr(r.neud));

end;

CloseFile(f);

end;

11.3.9.3 Реализация пункта меню «Добавление в упорядоченный файл из StringGrid1»

Эта процедура связана с пунктом меню «Добавление в упорядоченный файл из StringGrid1»

//Добавление в упорядоченный файл из StringGrid1

procedure TfrmAtt.mnuAddToSortClick(Sender: TObject);

var f:TAttFile; r:TAttRec; i: integer;

Begin

openAttFile(f);

sortAttFile(f);

// Идем по строкам StringGrid1

for i:= 1 to StringGrid1.RowCount-1 do

Begin

// Формируем запись из i-й строки StringGrid1

r.Name:= StringGrid1.Cells[0,i];

r.ball:= strToFloat(StringGrid1.Cells[1,i]);

r.neud:= strToInt(StringGrid1.Cells[2,i]);

// Добавляем к файлу

addToSortFile(f, r);

end;

showFileInGrid(f,StringGrid3);

CloseFile(f);

end;

11.3.9.4 Реализация пункта меню «Удаление записи из отсортированного файла»

//Удаление записи из отсортированного файла

procedure TfrmAtt.mnuDelInSortClick(Sender: TObject);

var fam:TName; f:TAttFile;

Begin

fam:=inputBox('Удаление записи из файла','Введите фамилию','');

openAttFile(f);

sortAttFile(f);

delFromSortFile(f,fam);

showFileInGrid(f,StringGrid3);

CloseFile(f);

end;

11.4 Задание для самостоятельной работы

В лабораторной работе следует создать проект по обработке файла, который содержит записи, соответствующие варианту задания в предыдущей лабораторной работе из таблицы 10.1. Номер варианта выбирается по последней цифре номера зачетной книжки.

Создаваемый проект должен обеспечить:

– Отображение записей файла в StringGrid.

– Добавление группы записей из StringGrid к файлу.

– Сохранение файла под другим именем

– Поиск записи по значению одного из полей.

– Удаление из файла записи, соответствующей заданному значению одного из полей.

– Получение какой-нибудь интегральной оценки для всех записей или группы записей.

– Сортировку файла по какому-нибудь признаку.

– Поиск записи в упорядоченном файле.

– Вставку записи в упорядоченный файл.

– Удаление записи из упорядоченного файла.

Для уточнения задания можно пользоваться заданиями своего варианта из таблицы 10.1, которые предлагают аналогичную обработку массива записей.

Обработку записей следует проводить только в файле. Компоненты TStringGrid использовать только для считывания записей из файла и вывода результатов.

11.5 Содержание отчета

– Наименование работы.

– Цель работы.

– Краткая характеристика типизированных файлов.

– Таблица основных процедур и функций, обеспечивающих работу с файлом.

– Интерфейс созданного проекта и описание его работы.

– Результаты тестирования проекта в виде копий формы с результатами.

– Текст модуля проекта с пояснениями в виде комментариев.

– Выводы.

Контрольные вопросы

– Характеристики типизированных файлов.

– Процедуры, используемые при открытии файла.

– Анализ исключительных ситуаций, возникающих при открытии файла.

– Процедуры, используемые для чтения и записи данных в файл.

– Процедуры и функции, обеспечивающие перемещение по файлу.

– Как удалить запись в неупорядоченном файле.

– Написать цикл последовательной обработки всех записей файла.

– Закрытие и удаление файла.

– Сортировка файла одним из трех методов (пузырек, выбор, вставка).

– Поиск записи в упорядоченном файле.

– Удаление записи в упорядоченном файле.

– Добавление записи к упорядоченному файлу.

– Объяснение текстов подпрограмм модуля и связей их с событиями и другими подпрограммами.

– Написать процедуру для реализации запроса к файлу по указанию преподавателя.

– Написать процедуру для реализации сортировки по правилу, заданному преподавателем.

12 ЛАБОРАТОРНАЯ РАБОТА № 12. РАБОТА С ТЕКСТОВЫМИ ФАЙЛАМИ

Цели работы:

– Познакомиться с понятием текстового файла и особенностями хранения информации в таких файлах.

– Познакомиться с правилами объявления текстовых файлов и стандартными процедурами и функциями по работе с ними.

– Создание проекта, в котором осуществляется работа с текстовым файлом, предназначенным для хранения данных о погоде и выполнением необходимых операций с этими данными.

12.1 Краткие теоретические сведения

Текстовый файл – это файл, в котором последовательность байтов интерпретируется как последовательность символов, образующих строки. Вся информация в таких файлах, в том числе и числовая, записывается в виде текста. В файлах такого типа, например, хранятся исходные тексты программ. Признаком конца строки в текстовом файле служит символ «Возврат каретки». В конце текстового файла находится признак конца файла.

В отличие от типизированных файлов, в текстовых файлах нет понятия записи. Аналогом записи в текстовом файле можно считать строку, но строки имеют разную длину, и поэтому понятие записи теряет смысл, так как по номеру строки нельзя вычислить ее положение на диске. По этой же причине невозможно произвольно перемещаться от одной строки к другой. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Поэтому текстовые файлы называют еще файлами с последовательным доступом.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 156; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.103.202 (0.011 с.)