77972

екстовые файлы. Диалоги для работы с файлами, настройка цвета и шрифта

Лекция

Информатика, кибернетика и программирование

Диалоги для работы с файлами настройка цвета и шрифта. Для облегчения работы с файлами в Delphi каждый отдельный файл представляет файловая переменная. Объявления файлов переменной Файловая переменная в общем виде объявляется в разделе vr примерно так...

Русский

2015-02-05

53.5 KB

0 чел.

Текстовые файлы. Диалоги для работы с файлами, настройка цвета и шрифта.

В Delphi файл представляется как именованная структура данных, т.е. последовательность однотипных данных. Для облегчения работы с файлами в Delphi, каждый отдельный файл представляет файловая переменная.

Объявления файлов переменной

Файловая переменная в общем виде объявляется в разделе var примерно так:

 F:file of type;

 Например:

 F:file of integer;

Следует заметить, что текстовые файлы объявляются немного по другому:

 F:TextFile;

 Некоторые функции работают только с текстовыми файлами. Также можно объявить не только файл целых чисел (integer), текстовый файл или файл какого либо другого типа, но и файл собственного типа или записи, поместив объявление типа или записи выше объявления файлов переменной. Например:

 type

  TDay = (MON, TUE, WED, THU, FRI, SAT, SUN);

var

F:File of TDay;

Или

 type

TDay = record;

Num:integer;

Name:string[200];

end;

var

F:file of day;

 Следует обратить внимание, что длина строковых полей в записи должна быть четко определена (Name:string[200])

Назначение и открытие файла

После объявления файлов переменной нужно связать ее с физическим файлом на диске. Сделать это можно с помощью процедуры AssignFile:

 AssignFile(var F:file; FileName:string);

Например:

 var F:TextFile;

begin

AssignFile(F,”text.txt”);

После выполнения процедуры файловая переменная F будет связана с файлом text.txt, находящимся в папке с программой. И все действия, производимые с переменной будут действовать именно на этот файл. Однако переменную можно освободить для дальнейшего использования с другим файлом процедурой CloseFile, но об этом ниже. Теперь необходимо открыть файл, причем одним из нескольких способов, в зависимости от ваших потребностей. Создать новый или перезаписать существующий можно с помощью процедуры Rewrite(F). Открыть для записи в конец файла можно с помощью процедуры Appened(F). А открытие файла для чтения осуществляет процедуры Reset.

Стандартные операции с файлами

 I/O – это операция ввода/вывода (input/output). Записать в файл можно переменную или костанту того типа, которого был объявлен файл. Например если файл был объявлен вот так F:file of integer, то в него можно будет записать данныетолько типа integer. При попытке записать данные другого типа компилятор выдаст сообщение об ошибке. Здесь в файл осуществляется процедурами Write([var F:file]; P1; […, Pn]) и Writeln([var F:file]; P1; […,Pn]). Вторая отличается от первой тем, что она после записи параметра перемещает каретку на новую строку, т.е следующий параметр запишется на новай строке. Вот пример использования процедур:

 var F:Textfile;

Str:string;

Str:=”Some Text”;

Writeln(F,Str);

Write(F, “это будет на новой строке”);

Write(F, “а это на этой же строке”);

Чтение данных происходит благодаря процедурам Read([var F:file]; V1; […, Vn]) и ReadLn([var F:file]; V1; […,Vn]). Отличаются они тем, что прочтения параметра процедурой ReadLn каретка перемещается на новую строку, даже если еще были данные. Вот пример:

Var F:Textfile;

Str:string;

Str2: string;

Str3: string;

Read(F,Str);

Read(F,Str2); //str2 будет содержать данные, идущие после str

Read(F,Str3); //str3 будет содержать данные, находящиеся на новой строке после str2

Закрытие файла

Файловую переменную после использования нужно объязательно освободить, иначе программы не закроется и будет выдавать ошибку. Также освобождение файловой переменной будет полезно тогда, когда вам нужно работать с несколькими файлами последовательно, и после работы с первым файлом можно освободить переменную и связывать ее с новым файлом. Освобождение файловой переменной делает процедура CloseFile(F:file).

Простейший пример программы, которая по нажатию одной кнопки будет запрашивать имя файла у пользователя и запрашивать имя файла, ситать оттуда записанные данные и помещать их в TMemo. Знаю, что запись и чтение в TMemo можно организовать данные и специальных методов. Обработчик первой кнопки приведите к такому виду:

procedure TForm1.Button1Click(Sender:TObject) ;

var

F:TextFile;

FileName:string;

i:integer;

begin

FileName:=InputBox(“Имя файла”,”Введите имя файла”, ”default.txt”);

AssignFile(F,FileName);

Rewrite(F);

for i:=0 to Memo1.Lines.Count do

WriteLn(F, Memo1.Lines[i]);

CloseFile(F);

end;

Это кнопка будет сохрянять текстовый файл. Итак, в разделе var объявили три локальные переменные: F типа TextFile это и есть файловая переменная для текстовых файлов; FileName типа string будет служать для хранения имени файла; и i типа integer – для циклов. В первой строчке запрашивается у пользователя имя файлов. Во второй связываем файловую переменную с физическим файлом на диске. Строчка Rewrite(F) создает новый файл или перезаписывает существующий. Чтобы данные не заменялись а добавлялись в конец файла эту строчку нужно заменить на Appened(F). далее идет цикл с 0 до количества всех строк Memo1. В цикле содержимое все строк Memo1 по порядку записывается в файл. Обработчик второй кнопки должен выглядеть примерно так:

procedure TForm1.Button2Click(Sender:TObject) ;

var

F:TextFile;

FileName,tmp:string;

begin

FileName:=InputBox(“Имя файла”,”Введите имя файла”, ”default.txt”);

AssignFile(F,FileName);

Rewrite(F);

while not EOF(F) do

begin

ReadLn(F,tmp);

Memo1.Lines.Add(tmp);

end;

CloseFile(F);

end;

Назначение локальных переменных в этой процедуре аналогичны предыдущим. Первая и вторая строчная аналогичны строчками из обработчика первой кнопки. Reset(F) – это я открываю файл для чтения процедуры Reset. Далее запускается цикл по всему файлу (while not EOF(f) do). Функция EOF(F: File) возвращает true когда достигнут конец файла. В цикле читается одна строчную из файла в переменную tmp и добавляется в Memo1. Вот и все, думаю довольно просто. Однако программу легко обмануть и вызвать исключение. Например при чтения файла пользователь может задать имя несуществующиего файла. Тогда возникнет ошибка. Далее мы поговорим о способах защиты программы от исключений.

Компоненты TSaveDialog и TOpenDialog.

Это компоненты имеют идентичные свойства и поэтому рассматриваются вместе.

Таблица1. Свойства TSaveDialog и TOpenDialog

FileName

Содержит маршрут поиска и выбранный файл при усаешном завершении диалога.

Filter

Используется для фильтрации (отбор) файлов, показываемых в диалоговом окне.

InitialDir

Содержит имя начального каталога.

DefaultExt

С помпщью свойства DefaultExt формируется полное имя файла, если при ручном вводе пользователь не указал расширение. В этом случае к имени файла прибавляется разделительная точка и содержимое этого свойства.

Title

Содержит заголовок диалогового окна

Программа может использовать это свойство FileName для доступа к файлу с целью читать из него данные (TOpenDialog) или записывать в него (TSaveDialog), при этом пользователь может ввести произвольное имя и, следовательно, указать несуществующий файл. Для записи это не имеет значения, но при чтения отсутствие файла может привести к краху программы. Чтобы ибежать этого, можно проверить существование файла глобальный функцией FileExists.

Свойство Filter можно устанавливать с помпщью специального редактора на этапе конструирования формы или программно. Для доступа к редактору достаточно щелкнуть по кнопке в строке Filter окна Испектора объектов. При прогаммном вводе фильтры задаются одной длинной строке, в которой символы “|” служат для разделения фильтров друг от друга, а также для разделения описания фильтруемых файлов от соответствующей маски выбоа. Например, оператор

 OpenDialog1.Filter:=’Текстовые файлы|*txt|Файлы Паскаля|*.pas’;

задает две маски для отбора файлов с расширением pas и TXT.

Главным методом компонента TSaveDialog и TOpenDialog является функция Execute, которая показывает окно диалога и возвращает значение True, если диалог успешно завершен, т.е пользовател ввел подходящее имя файла и нажал кнопку Сохранить/Открыть

 


 

А также другие работы, которые могут Вас заинтересовать

73253. Анализ влияния форм и методов розничной торговли на принятие потребителем решения о покупке продовольственных товаров 165.39 KB
  Розничная продажа товаров. Технология продажи товаров. Цель работы заключается в том что следует выяснить действительно ли различные формы и методы розничной продажи товаров влияют на потребительский выбор на примере конкретного предприятия.
73255. Расчет рентабельности предприятия 314.5 KB
  Целью данной курсовой работы являются расчёт полной себестоимости продукции данного предприятия оценка материальных затрат определение экономических эффективностей функционирования предприятия выявление факторов влияющие на себестоимость продукции производимой на предприятии. Для достижения поставленной цели необходимо решить следующие...
73258. РАЗРАБОТКА АССОРТИМЕНТА СУПОВ В МИРОВОЙ КУХНЕ 987.72 KB
  Супы широко распространенные блюда. Сначала жидкие блюда русской кухни называли похлебками. Вначале им называли чужеземные жидкие блюда но позднее распространили и на национальные похлебки. Многие страны имеют свои национальные первые блюда в большинстве случаев являющиеся супами.
73259. Исследование распределений температуры в полосковых проводниках 456.58 KB
  Измерение теплового поля тонких полосковых проводников может быть осуществлено различными методами, каждый из которых связан с некоторыми трудностями. Контактный метод измерения не подходит, так как высока теплоемкость контактирующего материала. Для измерения теплового поля хорошо подходит пирометрический метод, но для проведения измерений необходимо подготовить исследуемый объект
73260. Особенности религиозного и религиоведческого образования в государственных образовательных учреждениях РФ 80.52 KB
  Причины введения курса основы религиозных культур и светской этики в современных школах. Цели и задачи курса. Целью учебного курса ОРКСЭ является формирование у младшего подростка мотиваций к осознанному нравственному поведению основанному на знании и уважении культурных и религиозных традиций многонационального народа России а также к диалогу с представителями других культур и мировоззрений. Реализация этих целей – в культурологических религиоведческих курсах.