Работа с файлами Delphi

Автор: | 23.11.2017

Работа с файлами Delphi

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

Нужно упомянуть компоненты Delphi, которые умеют работать с файлами. Они читают и сохраняют своё содержимое, строки типа String, в файл текстового формата. Это компоненты ListBoxComboBox и Memo (расположенные на первой же вкладке палитры компонентов).

Каждая строка компонентов ListBox и ComboBox является объектом Items[i], а Memo — Lines[i], где i — номер строки, который отсчитывается от нуля. Добавление строк в компоненты выполняется методами Add и Insert:

Пример №1

Метод Add добавляет новую строку в конец. Метод Insert имеет дополнительный параметр, указывающий, после какой строки разместить новую строку. Доступ к строкам осуществляется так:

ComboBox1.Items[0] := ‘Первая строка изменилась‘ ;
ListBox1.Items[1] := ‘Вторая строка изменилась‘ ;

У компонента ComboBox дополнительно есть свойство Text, где находится вводимый текст:

ComboBox1.Text := ‘ Вводимый текст ‘;

На выделенную в данный момент строку компонента ComboBox указывает свойство ItemIndex типа Integer, то есть это номер выделенной строки. Следовательно, получить саму выделенную строку компонента ComboBox можно следующей конструкцией:

   S:=ComboBox1.Items[ComboBox1.ItemIndex];

или, пользуясь оператором присоединения

   With ComboBox1 do
    S:=Items[ItemIndex];

Вот как по нажатию клавиши Enter можно заносить в этот компонент вводимую в строку информацию и удалять нажатием Escape:
Выделите на Форме ComboBox и перейдите в Инспектор объектов, на вкладку Events. Щёлкните дважды по обработчику OnKeyPress. Система Delphi создаст заготовку обработчика. Напишите:

Пример №2

Key — определённая в этом обработчике переменная, содержащая код нажатой клавиши, #13 и #27 — коды клавиш Enter и Escape соответственно. Items.Count — количество содержащихся в компоненте строк. Так как отсчёт строк идёт от нуля, мы отнимаем единицу. После очередного удаления количество строк меняется, таким образом, Items.Count-1 всегда указывает на последнюю строку. Последовательно нажимая Escape, мы можем удалить все строки. Командой
ComboBox1.Items.Delete(0);
можно добиться того же эффекта, только удаляться будут первые строки. Впрочем, чтобы стереть всё сразу, есть метод Clear!

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

ListBox1.Items.SaveToFile(‘ Имя_файла.txt ‘) ;

Впрочем, расширение можно поставить любое по желанию, не обязательно .txt, как и вообще без него обойтись. Но расширение .txt позволит легко открыть файл стандартным  Блокнотом, что бывает очень удобно на этапе написания программы!
Для загрузки служит метод LoadFromFile:

ListBox1.Items.LoadFromFile(‘ Имя_файла.txt ‘) ;

Что делать, если в своей программе мы не работаем с компонентами ComboboxListBox или Memo, а сохранять информацию нужно? Берём один из компонентов и делаем его невидимым, для этого в Инспекторе Объектов ставим в свойство Visible значение False. Функциональность его от этого не изменится!

Последний штрих — создадим программу, сохраняющую своё положение на экране в момент закрытия и там же открывающуюся. Нам нужно сохранить два параметра — значения свойств Формы Left и Top, это расстояние от левого и верхнего краёв экрана соответственно. Значения эти выражаются в пикселях и имеют тип Integer. Необходимо перевести эти числа в строку (тип String) с помощью оператора IntToStr. Итак, разместите на Форме невидимый ListBox, щёлкните по пустому месту Формы, чтобы её свойства появились в Инспекторе объектов, и перейдите на вкладку Events. Щёлкните по обработчику OnClose и в созданной заготовке напишите:

Пример №3

Этот обработчик сохраняет положение Формы на экране. Теперь напишем обработчик, помещающий Форму на прежнее место при старте программы. Создайте заготовку обработчика события OnCreate. Это событие происходит в момент «создания» Формы операционной системой. В этот момент и нужно присваивать ей необходимые свойства. Пишите:

Пример №4

В первой строке происходит проверка на существование файла, ведь если его не будет, произойдёт ошибка. Впрочем, программа после выдачи предупреждения откроется в том месте, где была на этапе проектирования, а при закрытии нужный файл будет воссоздан!
Затем в логических скобках begin / end содержится сам код, который будет выполнен только приналичии файла MyFormPos.txt в папке с программой, так как используется относительный путь. Можно указать конкретное местоположение, например, C:\Program Files\MyProg\MyFormPos.txt.

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

Добавить комментарий