Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 2
Всего онлайн: 2
Зарегистрировано юзеров: 6619
Комментариев на сайте: 650
Новый юзер: Dysonetn



Последние комментарии
c
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа
intatryadebra прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Revival RO is best free ro populair ragnarok online private server founded in 2017 2018. Revival pvp big free Ragnarok server is an online exciting free MMORPG called ragnarok online, it a fun server for MMORPG gamers in ASIA. This is a top 10 ragnarok online private server thats high on the list and top ranking with massive players online. We have many players from Asia like Malaysia, Indonesia, Philippines, Thailand, Singapore, China, Hong Kong All these players are here to play free private ragnarok online server and battle players all around the world. They want to collect the best items and gear to be strongest in War of Emperium, War of Emperium are guild wars in this free RO Server. You can play this game on android phone or tablet or pc client. Enjoy And have fun. ragnarok online server http://bit.ly/2tKyawS

Урок 62 - Методы, наследование классов, операции с классами Delphi, (часть 4/6)

  В предыдущих уроках мы уже создали ряд методов: чтения и записи свойств, конструктор, деструктор. Поскольку вы уже освоились с методами, давайте создадим еще два метода: SaveToFile и LoadFromFile, позволяющих сохранять сведения о личности в файле и читать их из файла.

  Без подобных методов наш класс явно неполноценный. Введите в класс объявления открытых методов:

procedure SaveToFile(FileName: string  = '');
procedure LoadFromFile(FileName:   string);
  Первый метод содержит значение параметра по умолчанию. Предполагается, что если при вызове метода параметр не задан, то имя файла бу-.дет совпадать с именем личности, записанным в поле FName. Реализация объявленных методов может быть такой:
procedure  TPerson.SaveToFile(FileName: string  = '');
var  
	F:   TextFile;
begin
	if FileName = '' then 
		FileName := FName + '.txt'
	else 
		FileName := ChangeFileExt (FileName, '.txt');
		
	AssignFile(F, FileName);
	Rewrite(F);
	Writeln(F, FName);
	Writeln(F, FDepl) ;
	Writeln(F, FDep2) ;
	Writeln(F, FDep3);
	Writeln(F,    IntToStr(FYear)) ;    .
	Writeln(F,   FSex);
	if  FAttr   then  Writeln(F, 't')  else Writeln(F, 'f') ;
	Writeln(F,   FComment);
	CloseFile(F);
	
	if FDoc <> nil then  
		FDoc^.Lines.SaveToFile(ChangeFileExt(FileName, '.rtf')); 
end;

procedure   TPerson.LoadFromFile(FileName:   string);
var  
	F:   TextFile;
	s:   string;
begin
	FileName   :=  ChangeFileExt(FileName,  '.txt'); AssignFile(F,   FileName); Reset(F);
	Readln(F, FName); Readln(F, FDepl); 
	Readln(F, FDep2); Readln(F, FDep3); 
	Readln(F, s) ; 
	FYear   :=   StrToInt(s); Readln(F, FSex); Readln(F, s) ; FAttr :=   (s  =  ' t' ) ; 
	Readln(F,   FComment); CloseFile(F); 
	if   (FDoc  <>  nil) and  
	FileExists(ChangeFileExt(FileName, '.rtf)) then  
	begin
		FDoc^.Lines.LoadFromFile(ChangeFileExt(FileName, '.rtf'));  
		FDoc^.Lines.SaveToFile(FileTMP); 
	end;
end;

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

  Так что может иметь смысл хотя бы зашифровать его в процедуре SaveToFile и дешифровать в процедуре LoadFromFile. Вызов метода SaveToFile в вашем тестовом приложении может быть оформлен оператором:

Pers.SaveToFile;

ИЛИ

if SaveDialogl.Execute then Pers.SaveToFile(SaveDialogl.FileName);

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

  Вызов метода LoadFromFile в вашем тестовом приложении может быть оформлен оператором:

if OpenDialogl.Execute then Pers.LoadFromFile(OpenDialogl.FileName);

  После него, вероятно, полезно вызвать обработчик щелчка на кнопке Чтение, чтобы прочитанные данные немедленно отобразились в окнах редактирования. Все открытые и защищенные свойства и методы наследуются в классах, для которых данный класс является родительским.

Продолжение в следующем уроке.

Удачи!
Встретимся в следующем уроке!


Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 12 Июля 2013
Просмотров:

Урок 61 - Конструкторы классов Delphi, (часть 3/6) Урок 63 - Конструкторы классов Delphi, (часть 5/6)

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): Theihpled [Новичок] Дата: 2017-11-07
Здравствуйте, Савельев Александр. У меня к вм небольшой вопрос по языку https://cloud.mail.ru/public/KFS1/dYUrFbaTU . Cпасибо за уроки.