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