Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация строк 
:(
    Опции темы
bems
Дата 10.5.2011, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



что нереального в задаче? сериализация потомков TPersistent нормально справляется


--------------------
Обижено школьников: 8
PM MAIL   Вверх
PsiMagistr
Дата 10.5.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Я не говорю, что она плохо справляется. 

Но мне необходима инфа по сериализации отдельных объектов и коллекций.


Т.к. я в этом деле совсем зеленый.




--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
bems
Дата 10.5.2011, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Цитата(PsiMagistr @  10.5.2011,  12:25 Найти цитируемый пост)
M.Position:=0;
ObjectBinaryToText(M,F);

а зачем тебе это?



--------------------
Обижено школьников: 8
PM MAIL   Вверх
CodeMonkey
Дата 10.5.2011, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Я не понял: а чего с моей демкой не так?

Всё, что там надо сделать - наследовать объект от TPersistent. Остальное сделает встроенный механизм сериализации.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Neobrat
Дата 10.5.2011, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 28.8.2007

Репутация: нет
Всего: нет



Цитата(bems @ 10.5.2011,  14:45)
что нереального в задаче? сериализация потомков TPersistent нормально справляется

я не спорю. справляется.
но это примерно как стрелять пушкой по воробьям. цель достигнута, а какими средствами не важно))

ухожу из темы.
PM MAIL   Вверх
bems
Дата 10.5.2011, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



нет, совершенно целевое использование


--------------------
Обижено школьников: 8
PM MAIL   Вверх
PsiMagistr
Дата 10.5.2011, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



CodeMonkey

Все так. 

Демку анализирую.

Будут вопросы.

Добавлено через 3 минуты и 17 секунд
CodeMonkey
Кстати, какой объект избрать контейнером? Форму? Она запишет много чего лишнего. 


Создавать спецобъект-пустышку без свойств и полей, только ради контейнера? 




--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
CodeMonkey
Дата 10.5.2011, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Объект-контейнер, конечно же, не обязателен - это просто удобно, потому что он почти всё сделает сам. 

Что точно не нужно делать:
- Пытаться притянуть существующий объект, не связанный с вашими данными (форму).
- Относиться к контейнеру как к пустышке.

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

Пример: http://programmersforum.ru/showthread.php?...6354#post796354


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
bems
Дата 10.5.2011, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



CodeMonkey, если это будет коллекция, то ему нужно наследоваться от TCollectionItem, а оно вроде как слишком для этой задачи - менять иерархию. Хотя он уже раз поменял, и ничего...


--------------------
Обижено школьников: 8
PM MAIL   Вверх
PsiMagistr
Дата 10.5.2011, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Код


Container=Class(TComponent)//Объект-контейнер
  private
  fName:string;
  published
  Property Name : String read fName write fName;
  End; //



  Persones=class(TComponent) // Объект-элемент
  private
  fName:String;
  fSir:String;
  published
  Property Name : String read fName write fName;
  Property Sir : String read fSir write fSir;
  end;//


var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject); //Обработчик
var M:TMemoryStream; C:Container; Pers:Persones;
begin
C := Container.Create(Form1);//Создаем объект контейнер владелец форма
C.Name:='Это контейнер';

Pers := Persones.Create(C);// Создаем  объект-элемент владелец контейнер.

Pers.Name:= 'Имя';
Pers.Sir := 'Отчество';

//Заполняем.

 M:=TMemoryStream.Create;
 M.WriteComponent(C);
 M.SaveToFile(ExtractFilePath(Application.ExeName)+ 'Запись.txt');//Вуаля?!
 M.Free;
 Pers.Free; //По идее должен уничтожитьтся само при уничтожении контейнера, но кто знает...
 C.Free;

 //Никаких тебе "вуаля". Не записалось ничего... ВЕРНЕЕ

 Записалось поле Name Контейнера.  И все собственно.

end;

end.




--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
CodeMonkey
Дата 10.5.2011, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата(bems @  10.5.2011,  18:26 Найти цитируемый пост)
CodeMonkey, если это будет коллекция


Слово коллекция я употребляю как "набор объектов". Когда я имею в виду TCollection - я так и говорю: TCollection.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
CodeMonkey
Дата 11.5.2011, 04:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Во, наткнулся на текст: http://delphikingdom.ru/asp/viewitem.asp?catalogid=1426


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PsiMagistr
Дата 11.5.2011, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



CodeMonkey

Чтоб я в этом да что-то понимал. smile

Сериализовал, сериализовал. Не выходит. А ежели объект наследовать от формы - выходит. Но от формы не годится, форма и свои свойства запишет. Интересно, как от Persistent записывать, если из методов только Write--ReadComponent, куда только от класса TComponent передать можно?

Чудеса в решете.


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
CodeMonkey
Дата 11.5.2011, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89



Цитата
Интересно, как от Persistent записывать, если из методов только Write--ReadComponent, куда только от класса TComponent передать можно?


Ёлки-палки, я вам две демки на это дал, как это делать и использовать. Одну - свою (в том сообщении - ссылка на ZIP архив с демкой. Пропустили?), вторую - чужую.

Добавлено через 2 минуты и 22 секунды
В чём проблема-то возникает?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PsiMagistr
Дата 11.5.2011, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: 1
Всего: 1



Код

object TTestObjectCollection
  Items = < // Как понять эту фразу? =< чего?
    item
      Str = 'There is no cow level'
      Int = 5
    end
 



Это сообщение отредактировал(а) PsiMagistr - 11.5.2011, 15:14


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.