Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Работа с нетипизированными файлами
Как отмечалось выше, при работе с нетипизированными файлами данные из них считываются и записываются в них побайтно. Такие файлы допускается обрабатывать как последовательность байтов, не имеющую строгой внутренней структуры. Для этого в системе Delphi применяют процедуры блочного ввода/вывода: BlockRead (парамер 1, параметр 2, параметр 3, параметр 4) и BlockWrite (парамер 1, параметр 2, параметр 3, параметр 4). Параметр 1 – имя и тип файла, открытого для записи или считывания. Оформляется обычным образом: var F: File; Параметр 2 – произвольная переменная, которая записывается в файл или служит для хранения данных, считываемых из файла. Переменная оформляется обычным образом: var А: real; Параметр 3 – число блоков считываемой или записываемой информации. Оформляется следующим образом: var Count:integer; Если размер блока измеряется в байтах, то параметр будет содержать число байт. Параметр 4 – необязательный, необходимый для хранения числа реально считанных или записанных блоков. Оформляется так: var Amt Transferred: integer; Например, Procedure BlockWrite (F, M, Count, Amt Transferred). Установка новой позиции в файле Считывание из файла информации или запись ее в файл происходит последовательно, блок за блоком. Если же требуется, например, считать 5 запись из файла, содержащего 10 записей, или изменить ее, не перезаписывая все остиальное, то можно воспользоваться процедурой Seek (параметр 1, параметр 2). Параметр 1 – используемая файловая переменная. Параметр 1 оформляется обычным способом. Параметр 2 – номер записи в файле, с которой будет начинаться операция считывания или перезаписи. Этот параметр называется позицией в файле. В случае нетипизированного файла этот параметр определяет номер байта, с которого начинается чтение или запись информации. Параметр 2 оформляется так: имя переменной: тип. Например, N:lоngint. Нумерация записей в файле начинается с нуля. С помощью процедуры Seek выполняется редактирование файлов, т. е. перезапись отдельных фрагментов (блоков) в файле. Следует отметить, что при использовании процедуры Seek файл следует открывать процедурой Reset, а не процедурой Rewrite, которая при открытии сразу же уничтожит все данные из файла. Задание на работу а) Необходимо разработать проект, в котором: - в поле Memo формы вводится число; при нажатии на кнопку Решение в объект Label выводится результат, полученный прибавлением к веденному числу некоторой константы;
- результат вычисления записывается в файл. б) Необходимо разработать проект, в котором: - в созданный нетипизированный файл записываются несколько произвольных символов, а затем один ранее записанный символ меняется на другой произвольный. 2.1.3 Выполнение задания на работу Для реализации проекта а) задания на работу требуется создать новую форму, например, VCL Forms Application – Delphi for Win32 или другую в зависимости от версии системы Delphi. Озаглавить форму можно «Расчет». Необходимо вынести на форму компонент Edit1, удалив из компонента Edit1 внутреннюю надпись (Инспектор объектов (Inspector Object), свойства (Properties) – Text). При помощи компонента Label1 требуется подписать компонент Edit1, например, «Ввод данных». Далее на форму выносится компонент Button1. Компонент Button1 (созданную кнопку) можно подписать «Решение». При помощи компонента Label 2 требуется внести на форму надпись «Ответ». Указанные компоненты расположены на палитре компонентов Стандартные (Standart). На рисунке 32 показана созданная форма и установленные на нее вышеуказанные компоненты. Рисунок 32 – Форма с компонентами Далее требуется перейти в код формы (двойной клик по кнопке Решение) и в процедуре procedure TForm1.Button1Click(Sender: TObject) перед словом begin описать две переменных типа real. Ниже описания переменных следует описать файловую переменную типа real. В той же процедуре после слова begin следует перевести одну из двух введенных переменных из строкового типа в числовой тип real. Например, если переменная носила название A, часть кода будет выглядеть следующим образом: A:=strtofloat(edit1.Text). Введенный код означает присвоение тексту, вводимого в поле Edit1, числового типа вместо текстового. В поле Edit1 будет вводиться число и записываться в переменную A. После этого необходимо создать файл типа real. Логическая часть жесткого диска, каталоги и название файла указывается самостоятельно. Расширение файла следует выбрать dat. Далее следует открыть созданный файл для записи и записать в файл переменную, вводимую в поле Edit1. После этого созданный файл можно закрыть.
Затем созданный файл требуется открыть для чтения и записать его содержимое во вторую, имеющуюся в программе, переменную. После этого указанную переменную требуется увеличить на три. После указанных действий требуется вывести значение полученной переменной в компоненту label2. Например, если вторая введенная переменная носила имя В, то часть кода будет выглядеть следующим образом: label2.caption:=floattostr(В). После этого файл можно закрыть. Далее следует откомпилировать и запустить программу, а затем сохранить проект. После указанных действий целесообразно убедиться в существовании созданного файла и записанных в него данных. Открывать созданный файл типа real следует через контекстное меню как текст. На рисунке 33 показан примерный код программы. Рисунок 33 – Примерный код программы в соответствии с пунктом а) задания на работу На рисунке 34 показан созданный файл, имеющий название file и располагающийся на диске d в каталоге catalog1. Рисунок 34 – Созданный файл типа real На рисунке 35 показана форма после запуска программы и вывода результатов. Рисунок 35 – Форма после запуска программы и вывода результатов Для реализации проекта б) необходимо создать еще одну форму, например, с названием «Запись». Далее не вынося на форму объектов, необходимо прописать код, позволяющий создавать нетипизированный файл. При этом, чтобы перейти в код формы, необходимо в Инспекторе объектов выбрать закладку Events, найти строку onShow и произвести двойной клик мышью в пустом поле напротив строки onShow. Откроется код пустой формы. После этого необходимо записать в нетипизированный файл несколько произвольных символов. На рисунке 36 представлен код программы, создающей нетипизированный файл в указанном каталоге и записывающей в созданный файл символ с кодом $41 в количестве 100 раз. Значение кода $41 в шестнадцатеричном формате соответствует символу А. Рисунок 36 – Примерный код программы в соответствии с пунктом б) задания на работу После написания кода необходимо убедиться в существовании нетипизированного файла в созданном каталоге и просмотреть содержимое нетипизированного файла, открыв его как текст. На рисунке 37 показано содержимое нетипизированного файла в соответствии с кодом, представленным на рисунке 36. Рисунок 37 – Содержимое нетипизированного файла Код программы, позволяющей изменить в нетипизированном файле произвольный по счету символ на любой другой, представлен на рисунке 38. На рисунке 38 представлен код программы, заменяющий одиннадцатый по счету символ А в файле на символ В. В шестнадцатеричном коде при кодировании текстовой информации символ $42 соответствует символу В. Рисунок 38 – Примерный код программы замены символа На рисунке 39 представлен результат выполнения фрагмента программы, представленного на рисунке 38. Рисунок 39 – Содержимое нетипизированного файла после изменений После указанных действий требуется сохранить проект. 2.1.4 Контрольные вопросы 1 Что такое нетипизированный файл? Для чего он необходим? Как его создавать в системе Delphi? 2 Какая процедура в системе Delphi позволяет создать файл? 3 Какая процедура в системе Delphi позволяет открыть файл?
4 Какая процедура в системе Delphi позволяет записывать данные файл? 5 Какая процедура в системе Delphi позволяет считывать данные из файла? 6 Какая процедура в системе Delphi позволяет закрыть файл? Что такое процедуры блочного ввода/вывода? Для чего они применяются? 7 Как установить новую позицию в файле при записи в него данных или считывании информации? 8 Как отредактировать файл, не перезаписывая все существующие в нем данные? 9 Что означают в шестнадцатеричном коде при кодировании текстовой информации символы $41, $42? 10 Может ли существовать проект, созданный в системе Delphi, если на форму не вынесено никаких объектов. Текстовый тип файла Общие сведения Создание текстового файла В системе Delphi имеется тип файлов, используемый при работе со строками. Он называется Textfile. В таких файлах считывание и запись происходит построчно, причем символы перевода строки и возврата каретки используются как управляющие. Для этих файлов организованы две процедуры, осуществляющие ввод/вывод с новой строки: Readln и Writeln. Размер считанной строки определяется автоматически, исходя из наличия управляющих символов, которые в саму строку не записываются. Если применить процедуры Read и Write, то считывание и запись текста будут производиться сплошным потоком, без разделения на строки. Процедура создания текстового файла аналогична процедуре создания файла пользовательского типа или нетипизированного файла. В качестве расширения текстового файла принято указывать расширение txt. Открытие текстового файла в режиме записи Для открытия текстового файла можно использовать те же процедуры, что и для открытия файла пользовательского типа или нетипизированного файла: Rewrite – для записи, Reset – для чтения. В системе Delphi существует еще одна процедура, позволяющая открывать текстовый файл: Procedure Append (var F, Text). От процедуры Rewrite отличается тем, что не стирает все содержимое при открытии, поскольку автоматически устанавливает текущую позицию в конец файла, что позволяет добавлять в файл информацию. Печать текстового файла Procedure AssignPrtnt (var F, Text). Вся информация, записываемая в файл, перенаправляется на принтер. Файл должен быть открыт при помощи процедуры Rewrite. Удаление текстового файла Procedure Erase (var F, Text). Он должен быть определен с помощью процедуры AssignFile, но не должен быть открыт.
|
|||||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 451; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.228.35 (0.022 с.) |