Навигация
 
  •  Главная
•  Программирование
•  Веб-программирование
•  Заработок в сети
•  Продвижение сайта
•  Дизайн
 
 
 
 
 
 
 
 
 
 
 
   
 
 
 
 
 
 
Навигация
 
  •  Главная
•  Форум
•  Доска объявлений
•  Биржа труда
•  О нас
 
 
 
     
  •   Программисты.kz » Программирование » Delphi » Уроки Delphi » Урок Delphi 7.1. Компоненты для работы с файлами в Delphi  

      Реклама на сайте:
Голосуй за Programmers.kz

  Урок Delphi 7.1. Компоненты для работы с файлами в Delphi  
    |   31-07-2009, 19:48   |   Опубликовал: AlexanderMS  : 2175  
 

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

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

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

Компоненты сохраняющие содержимое
  begin
   Memo1.Lines.Add('Первая строка');
   ComboBox1.Items.Add('Первая строка');
   ComboBox1.Items.Add('Вторая строка');
   ListBox1.Items.Add('Первая строка');
   ListBox1.Items.Add('Вторая строка');
  end ;



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

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

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

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

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

  begin
   if Key=#13 then
      ComboBox1.Items.Add(ComboBox1.Text);
   if Key=#27 then
      ComboBox1.Items.Delete(ComboBox1.Items.Count-1);
  end ;

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 ') ;

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

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

  begin
   ListBox1.Items.Clear;
   ListBox1.Items.Add(IntToStr(Form1.Left));
   ListBox1.Items.Add(IntToStr(Form1.Top));
   ListBox1.Items.SaveToFile('MyFormPos.txt');
  end ;

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

  begin
   if FileExists('MyFormPos.txt') then
    begin
     ListBox1.Items.LoadFromFile('MyFormPos.txt');
     Form1.Left:=StrToInt(ListBox1.Items[0]);
     Form1.Top:=StrToInt(ListBox1.Items[1]);
    end ;
  end ;

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

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

Конечно, профессиональные программы сохраняют своё положение в Реестре Windows. Но всему своё время.
А пока "лирическое" вступление окончено.

 

Источник: delphi-manual.ru


Ключевые теги: Delphi, файлами, Компоненты, работы, Уроки Delphi
 
 
 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Обсудить на форуме


Другие статьи по теме:


 
 
 (голосов: 0)
 

  Уроки  
     
 

Delphi с самого начала:

Практические уроки:

 
     

  Информация  
     
  Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.  


 
 
Вход на сайт
 
логин :
пароль :
Напомнить пароль?
Вы не зарегистрированы? Регистрация здесь
 


Наш опрос
   


Статистика
  Всего на сайте: 8
Гостей: 4
Пользователи: - отсутствуют
Роботы: Yandex Bot, MSN Bot, crawl Bot, Google AdSense

 


Олимпиады
  2010/09/15 - 21:00, Ср Member SRM 482
Начало: 2010/09/15 - 21:00, Ср Длительность: 1 ч 35 м

2010/09/25 - 22:00, Сб SRM 483
Начало: 2010/09/25 - 22:00, Сб Длительность: 1 ч 35 м

2010/10/06 - 07:00, Ср SRM 484
Начало: 2010/10/06 - 07:00, Ср Длительность: 1 ч 35 м

2010/10/21 - 17:00, Чт Member SRM 485
Начало: 2010/10/21 - 17:00, Чт Длительность: 1 ч 35 м

2010/10/26 - 21:00, Втр SRM 486
Начало: 2010/10/26 - 21:00, Втр Длительность: 1 ч 35 м

 


Партнёры
 
Freeway.kz
Образование в Казахстане и за рубежом: Uchi.kz
Benchmark.kz - компьютерный портал
wWw.informatik.kz
Информационный портал Hi-Tech
 


Реклама
  Mybb: Создать личный форум бесплатно
полиэтиленовая пленка и вешалки, пакеты упаковочные и плечики
ремонт стиральных машин samsung
 


 
 
 
 
Главная страница   |   Регистрация   |   Добавить новость   |   Правила сайта   |   Статистика   |   Обратная связь
Copyright © 2009 КазКиберГетик & AlexanderMS . Все права защищены...
Made in DLETemplates.Com and by КазКиберГетик © 2009 for programmers.kz. Modifications by КазКиберГетик
  Rambler's Top100