Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Подсчет числа строк в текстовом файлеСодержание книги
Поиск на нашем сайте В процессе обработки файла часто возникает потребность обнаружить его конец. Например, такая ситуация возникает, если файл нужно прочитать от начала до конца при поиске нужной записи. Для подобного контроля в системе Delphi имеется функция, возвращающая значение true, если после выполнения последней операции ввода/вывода текущая позиция оказывается в самом конце файла, и дальнейшее считывание данных невозможно. Как правило, данная функция применяется при вводе, потому что запись в файл, открытый с помощью процедуры Rewrite, выполняется последовательно, и текущая позиция всегда располагается в конце файла. Данная функция носит название Eof и имеет один единственный параметр – файловую переменную. При использовании функции Eof надо помнить, что если она вернула значение true, то попытка выполнить считывание из файла приведет к попытке. В следующем фрагменте кода выполняется подсчет числа строк в текстовом файле. AssignFile (F, ‘C:\delo.txt’); Reset (F); I:=0; While not Eof (F) do Begin Readln (F, S); Inc (i); End; CloseFile (F); В представленном фрагменте прописано создание файла, открытие файла для чтения, в цикле от 0 до конца файла его чтение в переменную S, и выдача значения i, т. е. значения количества строк в текстовом файле. Использование универсального типа данных в качестве текстового [11] В системе Delphi существует тип данных, который можно назвать универсальным: tfilestream. Указанный тип может поддержать как целые и вещественные значения данных, так и текстовые форматы. Упрощенная процедура сохранения текста в файл В более поздних версиях системы Delphi процедура записи информации в текстовый файл значительно упрощена и сводится к использованию компоненты TMemo, изначально предназначенной для работы с текстовой информацией. Процедура записи фиксируется одной строчкой кода: memo1.Lines.SaveToFile('laba2.txt') – строки из компоненты memo1сохранить в файл с указанным в скобках именем. Задание на работу а) Необходимо разработать проект, в котором: - складываются два произвольных числовых значения; - полученная сумма записывается в виде текста в текстовый файл; - информация из текстового файла выводится в окно пользователя. б) Необходимо разработать проект, в котором: - текст, вводимый через компонент формы, записывается в файл, а при открытии файла, текст возвращается в исходный компонент. в) Необходимо разработать проект, в котором: - текстовая информация записывается в файл прогрессивным методом. 2.2.3 Выполнение задания на работу Для реализации проекта а) задания на работу необходимо создать форму, показанную на рисунке 40.
Рисунок 40 – Форма «Запись и считывание текста» Далее следует прописать код, в соответствии с которым осуществляется работа программы. Примерный код программы показан на рисунке 41.
Рисунок 41 – Примерный код программы проекта В предложенном коде: var f:textfile – описание файла текстового типа; a,b,c,d:string – описание переменных строкового (безразмерного) типа; i,j:real – описание переменных вещественного типа; a:='Сумма переменных = ' – присвоение переменной а строки; b:='Произведение переменных = '– присвоение переменной b строки; i:=strtofloat(edit1.Text)+strtofloat(edit2.Text) – присвоение переменной i значения, равного сумме чисел, хранящихся в компонентах edit1 и edit2. Причем тот текст, который вводится в компоненты edit1 и edit2 переведен в число (компонента edit предназначена для работы с текстом). Запись strtofloat – расшифровывается как строковый тип (str) в (to) число (float); j:=strtofloat(edit1.Text)*strtofloat(edit2.Text) – присвоение переменной j значения, равного произведению чисел, хранящихся в компонентах edit1 и edit2; c:=a+floattostr(i)+#13+b+floattostr(j) – присвоение переменной c совокупности значений, хранящихся в переменных a, b, i, j. Такой подход упрощает процедуру записи в файл. В файл будет записана переменная d; Символ #13 означает переход на новую строку. assignfile(f,'laba2.txt') – создание файла и именем laba и расширением txt; rewrite(f) – открытие файла для записи; write(f,c) – запись в файл значения переменной с; closefile(F) – закрытие файла; d:='laba2.txt'– присвоение переменной d значения имени файла. При отсутствии указанного пути файл сохранится в текущем каталоге. memo1.Lines.LoadFromFile(d) – вывод в компонент TMemo содержимого из файла. В скобках указан параметр – переменная d – путь к файлу. После написания кода необходимо сохранить проект и убедиться в существовании текстового файла. Содержимое текстового файла рекомендуется просмотреть при помощи двух программ: Блокнот и Word. На рисунках 42а, 42б показано различие в расположение строк файла при его просмотре с помощью двух указанных программ.
Рисунок 42а – Открытие созданного файла с помощью программы Блокнот
Рисунок 42б – Открытие созданного файла с помощью программы Word Для реализации проекта б) задания на работу необходимо создать форму, например, такую, как показано на рисунке 43. Название формы – «Работа с текстом».
Рисунок 43 – Форма «Работа с текстом» На рисунке 44 представлена форма, содержащая такие компоненты палитры инструментов Стандартные (Standard) как TMemo1, Edit1, Button1 (кнопка Сохранить), Button2 (кнопка Открыть). Относительно компонента Edit1 в Инспекторе объектов установите свойство (Properties) Text. В этом свойстве прописывается имя (c расширением) и путь будущего файла (рисунок 44). На рисунке 44 прописано только имя файла, следовательно, файл будет сохранен в текущем каталоге. Расширение файла.*prg. Выбранное расширение позволит не менять кодировки Windows при открытии файла.
Рисунок 44 – Ввод имени (с расширением) файла Также на форму «Работа с текстом» вынесен компонент палитры инструментов Dialogs – TOpenDialog. При запуске программы компонент ТOpenDialog виден не будет. Компонент ТOpenDialog необходим для того, чтобы при открытии созданного текстового файла открывалось стандартное окно с существующими каталогами (по аналогии, например, папки Мои документы операционной системы Windows). Относительно компонента ТOpenDialog в Инспекторе объектов (Object Inspector) установлен фильтр (рисунок 45).
Рисунок 45 – Установление фильтра относительно компонента ТOpenDialog Установка фильтра означает то, что при открытии стандартного окна с существующими каталогами будут показаны только файлы, имеющие указанное в фильтре расширение (с целью более оперативного поиска нужного файла). В данном примере текстовый файл имеет расширение.*prg – на это расширение и устанавливается фильтр. В процедуре Button1Click (кнопка Сохранить) следует прописать код, представленный на рисунке 46.
Рисунок 46 – Код программы, прописанный в процедуре Button1Click Код программы, представленный на рисунке 45, означает: var f:tfilestream – описание файловой переменной универсального типа. f:=tfilestream.create(edit1.Text,fmcreate) – создание файла вышеуказанного типа, имя которого будет прописано в компоненте Edit1. В компоненте Edit1 можно также указать путь файла. Если путь не указан, то файл создается в текущем каталоге. f.Free – закрытие созданного файла. При таком построении кода оперативная память ПК полностью высвобождается от функций по «держанию в открытом состоянии созданного файла». memo1.Lines.SaveToFile(edit1.Text) – сохранение текста, вносимого в компонент TMemo, в созданный файл. В процедуре Button2Click (кнопка Открыть) следует прописать код, представленный на рисунке 47.
Рисунок 47 – Код программы, прописанный в процедуре Button2Click Код программы, представленный на рисунке 46, означает: var a:string – описание переменной строкового типа (безразмерная строка); opendialog1.Execute () – открытие стандартного окна с папками с целью последующего открытия нужного файла. a:=opendialog1.FileName – присваивание переменной а значения пути к файлу, который следует открыть. memo1.Lines.LoadFromFile(a) – загрузка данных из файла в объект TMemo1. После написания кода откомпилируйте и сохраните проект. На рисунке 48 показано стандартное окно для выбора созданного файла при его открытии. Здесь же показано несколько созданных файлов различного содержания, имеющих в соответствии с установленным фильтром расширение.*prg.
Рисунок 48 – Стандартное окно для выбора файла с целью его открытия[12] Для реализации проекта в) необходимо создать форму, представленную на рисунке 49. Название формы – «Запись в текстовый файл».
Рисунок 49 – Форма «Запись в текстовый файл» В процедуре Button1Click (кнопка Запись) следует прописать код, представленный на рисунке 50.
Рисунок 50 – Код программы в соответствии с пунктом задания в) После осуществления указанных действий требуется откомпилировать и сохранить проект, а также убедиться в существовании созданного файла, просмотрев его содержимое с помощью подходящих программ. 2.2.4 Контрольные вопросы 1 Для чего предназначены текстовые файлы? Какую информацию они содержат? 2 Какое расширение имеют текстовые файлы? 3 Какие процедуры в системе Delphi осуществляют ввод/вывод данных при работе с текстовым файлом? 4 Как в системе Delphi создать текстовый файл? 5 Как в системе Delphi открыть текстовый файл? 6 Какая процедура в системе Delphi не стирает информацию из файла при открытии его для записи? 7 Какая процедура используется для печати текстового файла? 8 Какая процедура используется для удаления текстового файла? Можно ли эту процедуру использовать для удаления файлов пользовательского типа и нетипизированных файлов? 9 Какая процедура позволяет подсчитывать количество строк в текстовом файле? 10 Как организовать цикл при подсчете количества строк в текстовом файле? 11 Что представляет собой универсальный тип данных? Может ли он содержать текст? Целые и вещественные значения данных? 12 Какой компонент обеспечивает открытие стандартного окна для выбора файла? На какой палитре компонентов он располагается? 13 Для чего устанавливается фильтр в отношении компонента, позволяющего открывать окно, содержащее каталоги? 14 Может ли файл, содержащий текст, иметь расширение, отличное от расширения txt? 15 Каким образом программа распознает путь к файлу, который требуется открыть? 16 Всегда ли требуется прописывать в коде полный путь файла? Что происходит с файлом, если его полный путь не прописан? 17 Для чего и в каких случаях значения переменных следует переводить из строкового типа в числовой? 18 Что означает символ #13? 19 С помощью каких программ можно просматривать текстовые файлы? 20 В чем заключается прогрессивные методы записи в файл текстовой информации?
|
||
|
Последнее изменение этой страницы: 2017-02-19; просмотров: 336; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.220 (0.006 с.) |