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

 


 

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

39309. МЕХАНІЗМИ РЕАЛІЗАЦІЇ ПРАВ ДИТИНИ В УКРАЇНІ 365 KB
  Дитину жодним чином не можна прирівнювати до дорослої людини, у тому числі й у правових аспектах. Дитина має бути забезпечена особливими правами, особливим захистом, які мають часовий вимір і спеціальне призначення. Дитина, як і кожна людська істота, від народження має права людини.
39310. Маркетинговая деятельность «Вест-Алко» 244 KB
  Маркетинговая деятельность ВестАлко. Функции выполняемые службой маркетинга ООО ВестАлко. Анализ маркетинговой деятельности ООО ВестАлко. Переход к рыночным отношениям в России явился важной предпосылкой развития маркетинга. Данная работа представляет аналитический отчет о прохождении производственной практики на предприятии ВестАлко которое является виноводочным заводом.
39311. Характеристика предприятия ООО «Политон» 54.5 KB
  Характеристика предприятия ООО Политон. Целью преддипломной практики являются следующие задачи: Закрепить теоретические знания полученные по дисциплине Бухгалтерский учет анализ аудит; Приобрести необходимые навыки самостоятельной работы по анализу и учету отчетности и основных показателей предприятия; Получить практические навыки в качестве бухгалтера и аналитика; Развить творческую инициативу с целью решения задач по дальнейшему улучшению планирования и повышения эффективности учета деятельности предприятия;...
39312. Комплексный экономический анализ хозяйственной деятельности ОАО «Междуречье» 96.22 KB
  Экономический анализ – систематизированная совокупность экономических процедур, цель которого является получение заключений, выводов и рекомендаций экономического характера для отдельного субъекта.
39314. Теоретичний і правовий аналіз сутності норми права і нормативно-правового акту 197 KB
  Суспільство яке покликане захищати основні права людини – це впорядкована система відносин яка базується на дотриманні всіма суб’єктами цих відносин норм права які розміщені в нормативноправових актах. Значну увагу розробці вчення про норму права і нормативноправовий акт приділяли видатні представники російської юридичної науки у дореволюційній Росії Н. Предметом дослідження є нора права і нормативноправовий акт.
39315. Синтез кулачкового механизма контргрейфера 55.6 KB
  Опираясь на этот график строим график поперечного перемещения зуба контргрейфера и определяем фазовые углы и углы и : ФП 101 = 1768 рад ФД 116 = 2028 рад ФО 101 = 1768 рад ФБ 360 – ФП ФД ФО = 42 42= 0728 рад 280= 4888 рад ОПРЕДЕЛЕНИЕ ЗАКОНА ПЕРЕМЕЩЕНИЯ ТОЛКАТЕЛЯ Изображаем примерный закон перемещения толкателя S=S отсчитывая угол от начала фазы подъема. Закон перемещения толкателя на фазах подъема и опускания определяется путем двукратного интегрирования заданных законов изменения ускорения толкателя. Фаза подъема...
39316. Вплив антропогенних факторів на здоров’я людини 27.55 KB
  Основні антропогенні фактори. Негативний вплив людини на своє власне здоров’я величезний. Різноманітність засобів, якими вона руйнує своє здоров’я й генофонд, не може не вражати: отрутохімікати й побутова хімія, важкі метали й пластмаси, наркотики й тютюн, шум та електромагнітні поля радіація й кислотні дощі,
39317. Устройство сбора данных (УСД) 270.5 KB
  АЦП: имеет один аналоговый вход и восемь выходов по которым в двоичном параллельном коде выдаётся число соответствующее уровню поданного на вход АЦП отсчёта аналогового сигнала. Перед началом работы АЦП на него должен быть подан сигнал запуска. После окончания преобразования АЦП выдаёт сигнал ОК окончание преобразования на устройство управления. Сигнал ОК – флаг обозначается как Тфл должен быть зафиксирован с помощью триггера до момента окончания записи данных опрашиваемого канала в ячейку памяти ОЗУ.