Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Назначение и свойства компонентов страницы Samples ⇐ ПредыдущаяСтр 9 из 9
Вид страницы Samples представлены на рисунке 7.
Рисунок 7 – Вид страницы Samples
Основные назначения и свойства компонентов страницы Samples представлены в таблице 8. Таблица 8 - Компоненты страницы Samples
Обработка файлов
Для доступа к файлам чаще всего используется специальная файловая переменная. Она связывается с указанным файлом процедурой AssignFile. Эта процедура имеет синтаксис: procedure AssignFile(var F: File, S: string); где F - файловая переменная любого типа, S - строка, содержащая имя файла. Открытие существующего файла осуществляется процедурой Reset, формат которой (кроме нетипизированных файлов) следующий: procedure Reset(var F: File); Файловая переменная F перед обращением к этой процедуре должна быть связана с файлом. Создание и открытие нового файла осуществляется процедурой Rewrite, формат которой (кроме нетипизированных файлов - см. разд. 14.14.2.3) следующий: procedure Rewrite(var F: File); После выполнения различных операций чтения и записи файл должен быть закрыт процедурой CloseFile: procedure CloseFile(var F: File); При работе с файлами, при чтении и записи в них каких-то данных возможны различные ошибки. Если не принять соответствующих мер, то эти ошибки приведут к прерыванию работы программы. Предотвратить это можно двумя путями. Первый предполагает обработку исключений InOutError, поле errorcode которых содержит информацию о конкретном виде ошибки. Второй предполагает применение опции {$I-}, отключающей генерацию исключений ошибок ввода/вывода, и дальнейшее обращение к функции IOResull, возвращающей код ошибки и сбрасывающей его в 0 (так что повторное обращение к IOResuIt бессмысленно). После обработки операции ввода/вывода контроль ошибок можно снова включить опцией {$I+}. В этом случае общая организация работы с файлами строится примерно по такой схеме:
AssignFile (F, OpenDialogl.FileName); {SI-} Reset(F); {SI+} I:=IOResult; if I <> 0 then <операторы обработки кода ошибки> else... {SI+} <операторы чтения или записи> {SI-} I:=IOResult; if I <> 0 then <операторы обработки кода ошибки> CloseFile(var F: File); При операциях ввода/вывода проверять окончание файла можно функцией Eof(F: File), возвращающей true при достижении конца файла. Различают файлы трех видов: текстовые, файлы, типизированные файлы и нетипизированные файлы. Текстовые файлы состоят из последовательностей символов, разбитых на строки. В Object Pascal предопределен тип TextFile, соответствующий текстовому файлу. Таким образом, объявление файловой переменной может иметь вид: var <Имя файловой переменной>: TextFile; Запись данных в текстовый файл осуществляется процедурой procedure Write(var F: TextFile; <список выражений>); Выражения могут быть типов Char, Integer, Real, string, упакованных строк, Boolean. При этом может использоваться форматирование. Например: Write(F, 'Baм ', I, ' лет); Аналогичная процедура Writeln отличается от Write только тем, что после записи пишет символ перехода на новую строку, т.е. Writeln формирует одну строку. Чтение данных из текстового файла осуществляется последовательно от его начала процедурой procedure Read(var F: TextFile; <список переменных>); где в списке перечисляются переменные, в которые читаются данные из файла. Read(F, S1, I, S2]; даст значение S1, равное «Вам», значение I, равное записанному числу лет, и значение S2, равное «лет». Аналогичная процедура Readln отличается от Read только тем, что после чтения переводит текущую позицию в файле на новую строку. Если в процедуре Readln не задан список переменных, то она просто пропускает текущую строку и переходит к следующей. Типизированные файлы являются двоичными файлами, содержащими последовательность однотипных данных. Объявление файловых переменных таких файлов имеет вид: var <имя файловой переменной;»: file of <тип данных>; Тип данных может быть не только простым типом, но и, например, типом записей. Так операторы: type PhoneEntry = record
Fans, Nam: string[20]; PhoneNumber: string[15]; Listed: Boolean; end; PhorieList = file of PhoneEntry; объявляет типизированный файл, содержащий записи телефонных номеров. Процедуры чтения и записи Read и Write не отличаются от рассмотренных ранее для текстовых файлов. Только типы выражений при записи и переменных при чтении должны соответство-вать объявленному типу данных файла. Процедур, аналогичных Readln и Writeln для типизированных файлов нет. Зато есть процедура Seek, позволяющая перемещаться по файлу не только последовательно, как в текстовых файлах, но сразу переходить к требуемому элементу. Ее синтаксис: procedure Seek(var F: File, N: Longint); где N — номер элемента. Эта процедура перемещает текущую позицию в файле на нужный элемент. Имеется также функция FilePos: function FilePos(var F): Longint;, которая возвращает текущую позицию в файле. Пример выполнения практического задания Задание № Введите строку и букву. Выведите, сколько раз буква встречается в строке. Добавьте меню, дублирующее кнопки. Для решения задачи необходимо создать форму и разместить на ней два компонента Edit, три Button, три Label, один MainMenu. В инспекторе объектов надо изменить их свойства: У компонентов Label в свойстве Caption задать необходимую подпись. У компонентов Edit в свойстве Text удалить все. У компонентов Button в свойстве Caption задать необходимую подпись – Считать, Очистить, Закрыть. Двойным щелчком по компоненту MainMenu был вызван редактор меню и в нем создан пункт Файл, а в нем три пункта: Считать, Очистить, Закрыть. Для того чтобы в Edit2 могли внести только одну букву надо выделить компонент и в инспекторе объектов на закладке Events для события KeyUp (отпускание нажатой клавиши) написать код: procedure TForm1.Edit2KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var s:string; begin s:=Edit2.Text; //считываем имеющийся текст if Length(s)>1 then //если его длин больше 1 символа s:=s[length(s)];//все заменяем последним символом Edit2.Text:=s;//заносим в Edit символ end; Двойным щелчком по компоненту Button1 был вызван редактор кода, в нем написан следующий код для решения задачи: procedure TForm1.Button1Click(Sender: TObject); var s,s2:string; i,n:integer; begin s:=Edit2.Text;//Запоминаем символ s2:=Edit1.Text; Запоминаем текст n:=0;//Обнуляем счетчик символов for i:=1 to Length(s2) do//перебираем номера символов в строке if s[1]=s2[i] then n:=n+1; //Если текущий символ равен искомому то увеличиваем счетчик Label1.Caption:='Символ ' + s[1]+ ' встречается '+inttostr(n)+ ' раз';//вывод результата end; Двойным щелчком по компоненту Button2 был вызван редактор кода, в нем написан следующий код для очистки: procedure TForm1.Button3Click(Sender: TObject); begin Edit2.Text:=''; Edit1.Text:=''; Label1.Caption:=''; end; Для выхода: procedure TForm1.Button2Click(Sender: TObject); begin form1.Close; end; Двойным щелчком по компоненту MainMemu1 был вызван редактор меню, в нем выделен первый пункт и в инспекторе объектов на закладке Events для события onClick выбран Button1Click. Аналогично для остальных. Работающая форма с результатами представлена на рисунке 8:
Рисунок 8 – Форма с результатами
Таблица 9 – Варианты домашней контрольной работы № 2 по дисциплине «Основы алгоритмизации и программирования»
Продолжение таблицы 9
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-12-09; просмотров: 75; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.216.123.120 (0.028 с.) |