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

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 6
Всего онлайн: 6
Зарегистрировано юзеров: 7938
Комментариев на сайте: 698
Новый юзер: Henryfar



Последние комментарии
c
Dennisvoifs прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Пункт коммерческого учета цена, Ктп комплектные трансформаторные подстанции москва, Производство ктп москва и не только Вы найдете на нашем специализированном сайте: - Вам к нам!https://sviloguzov.ru/
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://masterfutures.ru/wp-content/uploads/2020/03/14-2.png[/img] Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Broker Broker is operated by a dedicated team, whose main priority has always been to provide the best possible user experience, and ultimately satisfaction. Whether experienced in trading or a newcomer, the platform is easy to use and very responsive. The education section deserves special mention, particularly for assisting traders to learn and implement new strategies – which can be tested on the platforms free demo Source: [url=https://bit.ly/35fv3B6/]Broker[/url] https://bit.ly/35fv3B6/ Tags: Broker

Урок 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пасибо за уроки.