Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 642; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |