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, если диалог успешно завершен, т.е пользовател ввел подходящее имя файла и нажал кнопку Сохранить/Открыть

 


 

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

36038. Строение и функции клеточного ядра. Деление клеток эукариот. Митоз и мейоз 33 KB
  ДНК спирализуется передделением клетки для более точного распределения генетического материала при делении. Хранение генетической информации и передача ее дочернимклеткам в процессе деления. Митоз тип клеточного деления в результате которого дочерние клетки получают генетический материал идентичный тому который содержался в материнской клетке. Хромосомы спирализуются центриоли у животных клеток расходятся к полюсам клетки распадается ядерная оболочка исчезают ядрышки и начинает формироваться веретено деления.
36039. Формы изменчивости живых организмов. Рекомбинации и мутации 33 KB
  Хромосомные мутации – возникают на основе хромосомных перестроек аберраций. Различают внутрихромосомные нехватки дупликации инверсии и межхромосомные транслокации – обмен участками негомологичных хромосом иди фрагментов; геномные – изменения чисел хромосомгаплоидия полиплоидия анеуплоидия; плазмовые – изменения цитоплазматических наследственных структур. Комбинативная; причинами служат все виды скрещивания и гибридизации а также кроссинговер обмен генетическим материалом между гомологичными хромосомами родителей во время...
36040. Необходимость международного сотрудничества в области ООС 33 KB
  Поэтому в настоящее время государства под эгидой ООН или на двухсторонней основе организуют взаимодействие с целью охраны среды обитания человека растительного и животного мира. является специализированным учреждением ООН и занимается вопросами продовольственных ресурсов и раз вития сельского хозяйства в целях улучшения условий жизни народов мира. В соответствии с своей компетенцией она обращает внимание на охрану и рациональное использование земель водных ресурсов лесов и иной растительности животного мира суши биологических ресурсов...
36041. Иван Александрович Гончаров 33 KB
  Роман интересен тем что образ Ильи Ильича Обломова мы можем отождествлять с определенным типом людей живших в России в то время. Любовь их продолжается до тех пор пока Илье не приходится столкнуться с реальной жизнью пока от него не требуется решительных действий пока Ольга не понимает что она любит будущего Обломова. Ни дружба ни даже такая чистая искренняя любовь не смогли заставить Обломова отказаться от своих идеалов: мирной покойной беззаботной жизни плотной еды и безмятежного сна. Родители Обломова понимали важность и...
36042. Дадаи́зм, или дада 32.84 KB
  Считается что дадаизм явился предшественником сюрреализма во многом определившим его идеологию и методы. Основателем и идеологом сюрреализма считается писатель и поэт Андре Бретон. Одними из величайших представителей сюрреализма в живописи стали Сальвадор Дали Макс Эрнст и Рене Магритт. Наиболее яркими представителями сюрреализма в кинематографе считаются Луис Бунюэль Жан Кокто Ян Шванкмайер и Дэвид Линч.
36043. Гидравлические потери напора по длинне 32.53 KB
  ГА в зависимости от назначения характеризуется различными техническими характеристиками: Условный проход Dу Номинальный расход Qн Номинальное давление Рн Условный проход указывается в виде диаметра в мм выбирается из стандартного ряда и примерно соответствует диаметру внутренних каналов в ГА. Номинальный расход и давление – расчет значения этих параметров при котором указываются другие технические характеристики и проводятся испытаний ГА. Давление на выходе задается при помощи регулировочного винта который создает нагрузку на...
36044. Экологические проблемы сельского хозяйства. Принципы безопасного применения пестицидов и агрохимикатов в сельском хозяйстве 32.5 KB
  Пестициды это химические или биологические препараты используемые для борьбы с вредителями и болезнями растений сорными растениями вредителями хранящиеся в сельскохозяйственной продукции бытовыми вредителями и внешними паразитами животных а также для регулирования роста предуборочного удаления листьев дефолианты предуборочного подсушивания растений десиканты. В зависимости от объекта воздействия сорная растительность вредные насекомые теплокровные животные и химической природы пестициды подразделяются на: акарициды для...
36045. Понятие о фонеме и звуке. Система гласных и согласных фонем в РЯ 32.5 KB
  В языке действует строгий закон: отождествляются звуки различия между которыми связаны с разными условиями их произнесения. Звуки это разные звуки но говорящий обычно этой разницы не замечают: для них и [з˙] – одна языковая еденица. В словах бар бор бур звуки [а] [о] [у]. Все звуки находящиеся в пределах этой зоны отождествляются говорящими и воспринимаются как один и тот же звук.
36046. Консервативная политическая мысль России 19 века, ее черты 30.5 KB
  Основа К: идея традиции и преемственности как основа всякой творческой жизни сохранение традиции но что считать традицией Пол традиции Др Руси утрачены благодаря П1 петровские преобразования нельзя было считать традицией тк они еще не были укоренены в народе только в верхах инновации как традиции еще не закрепились прошло 100 лет. Чаадаев Философическое письмо славянофилы Хомяков Киреевский Аксаков Самарин поздние славянофилы Данилевский Россия и Европа теория лок цций Леонтьев Россию нужно подморозить задержать...