Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Злые беседы добрых программистов | страница 8
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 8 из 9
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Злые беседы добрых программистов»
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson, dfm - это файлы для хранения дельфовых компонентов (объекты класса TComponent и наследников, включая TForm). Я создаю наследника TComponent; всё что я добавляю - это свойства для хранения данных. Во время выполнения программы я создаю 1 объект этого класса, а потом загружаю в него (при помощи вышеописанных функций) данные из отдельного dfm-файла (в котором хранятся только этот объект и только значения его свойств, объявленных в секции published, и при этом отличающихся от значений по умолчанию; таким образом, в dfm-файле с настройками хранится только нужная информация). Таким образом у меня в распоряжении оказывается объект-контейнер со всеми настроечными данными, и это при минимуме телодвижений с моей стороны. При изменении настроек данные сохраняются всё в тот же "настроечный" dfm-файл.

Shirson :
Совершенно верно! Но занимаешься ты свининой Файл-стримы это свинина. А операции с данными, абстрагированные от носителя, способа записи, места хранения - пельмени.
А мне казалось, что пельмени - это готовый продукт, а свинина-полуфабрикат. Любая абстракция для практического применения нуждается в вещественном воплощении. И мне нужно это самое воплощение, и, желательно, отлаженное командой профессиональных программистов. При этом я не отрицаю, что собственноручное воплощение абстрактной идеи несёт пользу.

Shirson :
Когда я работаю с ini, я использую готовую обёртку TIni, в которой есть WriteString, WriteBinaryStream, WriteBool, WriteDate, WriteDateTime, WriteFloat, WriteInteger, WriteTime. Т.е. этими командами перекрываются все возникающие у меня потребности и все возможные
Теперь моя очередь спрашивать. На чём пишешь? Обёртка TIni - чья разработка?

Последний раз редактировалось: Криптон (22:43 10-04-2008), всего редактировалось 1 раз
    Добавлено: 22:43 10-04-2008   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Криптон :
TIni - чья разработка?

Это из IniFiles и называется по-другому.

Но то решение что ты привел - сохранение компонента - удачное. Только не совсем в dfm оно сохраняет...

В Делфи есть оочень мощные средства. Главное их знать и понимать. Пробуй это, хотя бы для опыта.
_________________
MOV topka, C++
    Добавлено: 23:15 10-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson :
TInifile это стандартная обёртка в Delphi. Если начать писать в хелпе TIni как раз на него и попадёшь.
Я на него и попал. И очень удивился, как это TInifile превратился в TIni.
Shirson :
Я говорю про сериализацию данных на уровне данных. Не опускаясь до уровня операций с файловой системой.
Ну и где я опускаюсь до уровня операций с файловой системой? Я наоборот поднимаюсь над типичным для реестра и ini-фалов уровнем "секция.ключ=значение". Те две процедуры, в которых "объект сгружается в поток", нагло спёрты мною из книжки (М. Голованов, Е. Веселов. "Создание компонентов в среде Delphi. Руководство разработчика"), где они упоминались в связи с "загрузкой формы в run-time". Вся моя заслуга в том, что я применил те же процедуры к TComponent; сам объект-контейнер настроек к тому времени уже был готов. TComponent как предок использован только потому, что именно в нём (или для него) реализована поддержка сохранения в файл.
Shirson :
Только тебя это каксаться не должно
Каксаться - это касаться или казаться?

добавлено пойже:
Я тут посмотрел по словарям значение термина "настройка", и понял, что моя текущая задача относится скорее к "наладке" (хотя я и предусмотрел нормальный старт программы при пустом "наладочном" файле). Приношу извинения заинтерисованным лицам.
Кстати, по поводу TInifile. Специально посмотрел, там используются именно так называемые "устаревшие" API из разряда WritePrivateProfileString.

Последний раз редактировалось: Криптон (00:19 11-04-2008), всего редактировалось 2 раз(а)
    Добавлено: 00:02 11-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson :
Наладке? Э... Хм... Теперь я вообще запутался
Ты дебаг-инфо записываешь? Просто скажи, что у тебя за инфа там, ну не сверх-секретная же, правда. Зато сразу понятно станет.


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

 Cкрытый текст   (кликните здесь для просмотра)

Как всё это выглядит на практике? Создана специальная виндовсовская ограниченная учётная запись. В ней в качестве оболочки вместо eхplorer'a прописан ещё один мой "монстрик" (ну там всё было не слишком сложно - функциональность совершенно примитивная, реализована только панель задач, трей, индикация языка и кнопка "выход"; способ реализации подсмотрен в исходниках LiteStep). Рабочего стола у самодельной оболочки нет, вместо него запускается как раз ныне обсуждаемая программа. Защита у программы жутко примитивная, ибо взламывать её даже пытаться никто не будет (разве что я, когда в очередной раз забуду настроечный пароль). Доступ к папкам с играми разрешён только "игровой" и администраторской учётным записям.


Решил добавить скриншотов:
Стартовый экран:http://i027.radikal.ru/0804/be/8b1947b9da75.jpg
Запрос пароля пользователя:http://i033.radikal.ru/0804/e8/51f3bcd76b9f.jpg
Список программ для меня:http://i002.radikal.ru/0804/53/91f095d89f67.jpg

Shirson :
Кстати, версия Delphi у тебя какая?
Delphi 2005.

Последний раз редактировалось: Криптон (17:22 11-04-2008), всего редактировалось 1 раз
    Добавлено: 17:05 11-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Вариант с раздачей учётных записей я рассматривал - и отверг. Во-первых, самовольно включать компьютер из этих пяти можно только двум. Во-вторых, перелогин занимает довольно много времени, а компьютерного времени в нашей семье дефецит. В-третьих, мои нездоровые амбиции и желание попрактиковаться в программировании. В-четвёртых, оптимизация ресурсов компьютера за счёт отказа от explorer'a (плюс неизрасходованное дисковое пространство для 4 учётных записей).
По поводу Access или Excel. На фига забодяживать все эти "полноценные БД" ради 14 кб данных? Кстати, MS Офис у меня на компьютере не установлен.
Shirson :
Это не настройки программы и не отладка программы, это даные

Вопрос. Как отличить "настройки" от "данных"?
Далее, я знаю, что такое отладка, и употребил термин "наладка".
БСЭ :
Настройка - изменение в заданных техническими условиями пределах параметров прибора, машины, устройства, обычно в процессе эксплуатации при переходе на новый режим работы (в отличие от наладки, целью которой является обеспечение нормального функционирования объекта)
Да, отладка - это часть наладки. Но данные, используемые исключительно для обеспечения нормальной работы, и управляемые исключительно одним человеком - это что?

Последний раз редактировалось: Криптон (17:44 11-04-2008), всего редактировалось 1 раз
    Добавлено: 17:43 11-04-2008   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
блин, берешь все данные которые надо и пишешь в бинарный файл с помощью BlockWrite.

Метод в лоб. Без всякого гемора. Единственный минус это нерасширяемость (хотя всё зависит от того как закодить)
_________________
MOV topka, C++

Последний раз редактировалось: Jurec (19:23 11-04-2008), всего редактировалось 1 раз
    Добавлено: 19:22 11-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Jurec, я уже реализовал удобный для меня способ записи нужных мне данных. В ближайшее время перекодировать не собираюсь, поскольку работает. В данный момент меня интересуют некоторые сведения теоретического характера, например о разнице между настройками и данными. Ну и вообще приятно повышать свой культурный уровень.
    Добавлено: 19:38 11-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson :
Как в винде можно отказаться от эексплорера? Он по-любому будет.
Я имел ввиду отказаться от запуска эксплорера (explorer.exe). Делается это просто: в разделе реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon создаётся ключ Shell со значением вроде "D:\GSH3\SShell.exe" (как у меня). В результате при логоне explorer.exe не запускается, а стартует SShell.exe.
Shirson :
Switch user занимает нисколько времени. Полностью перелогиниваться нет нужды
А сколько ресурсов отъедят четыре лишних неактивных, но загруженных пользователя?
Shirson :
Настройки - это параметры, влияющие на работу и функционирование самой программы.
Данные - это следующий мета-уровень, информация, которую программа перерабатывает.
На примере игры: ini файл с биндами клавиш, разрешением экрана и пр. - "настройки". Савешник - данные.
На примере сложного офисного пакета: в MS Word пользователь имеет инструменты для самостоятельной компоновки меню и панелей инструментов из заранее созданного программистами MS набора команд. Не знаю, где хранится описание текущей конфигурации меню, но что это - настройки или данные?
Shirson :
Совершенно эквипенисуальные термины в программинге.
А разве термин "наладка" употребляется в программинге?

P.S. в качестве офисного пакета используется OpenOffice.org.

Последний раз редактировалось: Криптон (21:57 11-04-2008), всего редактировалось 1 раз
    Добавлено: 21:55 11-04-2008   
BlackCat
 200 EGP


Рейтинг канала: 3(33)
Репутация: 18
Сообщения: 2192
Откуда: г. Минск, Республика Беларусь
Зарегистрирован: 28.11.2006
Винда прекраснейшим образом себе живет без эксплорера. И астон - тому лишнее и вполне себе красивое подтверждение, кушающее не в пример меньше ресурсов. Причем никаких извращений в этом нету ни капли. Ибо функицонал не только сохраняется, но и расширяется.

А кроме МС офиса есть еще опен-офис... Функционал практически одинаков. Скорость работы - выше. Стабильность работы - выше. И главное - опен-сурс.
_________________
Я циник, эгоист, мизантроп, социофоб, пофигист, скептик! Одним словом - Няшка. :)
    Добавлено: 02:32 12-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson, по поводу установок/настроек. Моя программа с точки зрения простого пользователя является набором индивидуальных панелей инструментов, каждая кнопка на которых соответствует запуску какой-либо программы. Так почему же информация о том, какие именно кнопки на какой панели инструментов отображать, не является настройками?
Shirson :
Конфигурация - это настройки, о чём говорит само название. Данные, в ворде, это содержимое текстового документа.
Моей программе требуется только конфигурация. Она предназначена не для обработки данных, а для предоставления доступа к другим программам.

Shirson :
Криптон :
А сколько ресурсов отъедят четыре лишних неактивных, но загруженных пользователя?
Несколько. Критичность зависит от удобства и мощности.
От удобства для кого? И "несколько" - это сколько?

Shirson :
Мсье знает толк в изврашениях
А господин(или товарищ?..) не знает. И что из этого?
    Добавлено: 15:01 12-04-2008   
x-freelancer
 155 EGP


Репутация: 50
Сообщения: 203
Откуда: Гатчина
Зарегистрирован: 02.02.2008
BlackCat :
А кроме МС офиса есть еще опен-офис... Функционал практически одинаков. Скорость работы - выше. Стабильность работы - выше. И главное - опен-сурс.

Скорость - да!
Стабильность - спорный вопрос, у мну и оффис без проблем работает
Опен-сурс - очень хорошо, особенно когда жалко денег на лицензионный оффис. Да только лицензионный оффис зачем покупать, когда за 100-200 рублей мона купить и офисс, и винду, и еще с десяток программ (нелицензионных ессно). Так что в данном случае ГНУ не самое главное.
+ у оффиса гораздо больше фунционала (в опен-офиссе даже таблички как-то не очень удобно делать/редактировать)
_________________
"Это "жжжжжж" неспроста" (с) Винни Пух

Последний раз редактировалось: x-freelancer (11:12 14-04-2008), всего редактировалось 1 раз
    Добавлено: 11:09 14-04-2008   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Настройки это данные. О чем вы спорите то?
_________________
MOV topka, C++
    Добавлено: 16:23 14-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Shirson, остался непрояснённым вопрос насчёт уровней абстракции и файловых потоков, а также целесообразности применения полноценных СУБД для оперирования 14 кб данных; также меня интересуют недостатки альтернативных способов оперирования с небольшими объёмами сложноструктурированных данных.

Далее, Shirson, а почему это нам больше не о чём спорить в вопросе о различии между настройками и данными? Исходя из твоего разъяснения, если я выделю форму для конфигурирования моей программы в отдельное приложение, то данные тут же превратятся в настройки, и "самому богу" уже не будет никакого дела до необходимости хранить их в БД? Дело в том, что у меня почему-то сформировалось впечатление, что ты считаешь естественным хранить настройки в ini-файлах, а данные - в "настоящих" БД.
    Добавлено: 17:04 14-04-2008   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Криптон :
что ты считаешь естественным хранить настройки в ini-файлах, а данные - в "настоящих" БД.

Сорри, что вмешаюсь в Вашу дискуссию, просто не стоит забывать что программирование это творчество.
Одни и те же проблемы с одинаковой степенью эффективности можно решить по разному. Главное чтоб тебе было удобно.
_________________
MOV topka, C++
    Добавлено: 17:28 14-04-2008   
Криптон
 995 EGP


Рейтинг канала: 3(44)
Репутация: 164
Сообщения: 2665
Откуда: Москва
Зарегистрирован: 05.04.2008
Ну что тут можно сказать. Shirson, премного благодарен за разъяснения.
Shirson :
Мои разъяснения были непоняты.
Мои вопрсы тоже были непоняты.
Shirson :
Теперь ты изменил мои слова до СУБД
Протестую! Насчёт СУБД - это были мои слова!
Shirson :
я не являюсь для тебя авторитетом
Я признаю у тебя наличие большого опыта, но вовсе не готов принимать все твои слова на веру.

P.S. Я вообще-то тоже белый и пушистый.

Последний раз редактировалось: Криптон (18:08 14-04-2008), всего редактировалось 1 раз
    Добавлено: 18:07 14-04-2008   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
Байка, одна из тех, которые попадают на башорг, зато терь я совершенно точно знаю откуда они берутся Улыбка

Буквально давеча в конце рабочего дня ко мне подошёл серьёзный молодой, а главное амбициозный сотрудник
и у нас состоялся примерно такой диалог (попробую передать в лицах):

Сотрудник: кто писал сериализацию, ты?
Штак: вообще-то она бустовская, не помню точно кто писал, но могу посмотреть, а что?
Сотрудник: мне нужно воспроизвести алгоритм сериализации
Штак: (машинально открывая страничку буст.орг) э-э-э... вообще-то это непросто, но можно посмотреть исходники...
Сотрудник: (склоняясь надо мной) давай посмотрим
Штак: вот, некто Robert Ramey написал сериализацию...
Сотрудник: меня не интересует кто написал
Штак: (открывая директорию с файлами сериализации, и зная, что они содержат зубодробительные шаблоны на перемалывание которых у компилятора на современной машине уходит точно больше 10-ти секунд, а у программиста средней руки это может отнять полгода жизни) ты вряд-ли разберёшься...
Сотрудник: (глядя на список файлов) это Си что-ли?
Штак: это плюсы, очень большая разница...
Сотрудник: неважно, всё равно любой алгоритм сводится к последовательности нулей и единиц

после этого серьёзный молодой амбициозный сотрудник прощается со всеми и уходит, а программисты, которые слышали диалог начинают покатываться от хохота
а сегодня возможно будет продолжение этого разговора Улыбка
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 08:55 15-05-2008   
Trident
 610 EGP


Рейтинг канала: 2(16)
Репутация: 106
Сообщения: 4415
Откуда: Загнивающий Запад
Зарегистрирован: 03.05.2003
Sh.Tac. :
Штак: вообще-то она бустовская, не помню точно кто писал, но могу посмотреть, а что?
Сотрудник: мне нужно воспроизвести алгоритм сериализации

Амбициозному Сотруденику надо ведь объекты прочитать без C++? Тады Всем привет! в руки... Даже если он разберётся в коде. Неявная привязка к конкретному языку с его специфическими заморочками системы типов, - это самые большие грабли почти любой виденной мной сериализации.
_________________
Злостный РетроГад(tm) и конверсатор. И да, пуркуа гнобэ-ву наших нубов?

Последний раз редактировалось: Trident (17:38 21-05-2008), всего редактировалось 1 раз
    Добавлено: 17:38 21-05-2008   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Jurec :
Сорри, что вмешаюсь в Вашу дискуссию, просто не стоит забывать что программирование это творчество.


"Творцов от программирования" надо убивать. В программе все должно быть параллельно и перпендикулярно, как в армии - особенно когда дело касается таких стандартных вещей, как хранение настроек. Иначе получится как в в первых версиях X-Tension, который хранил сейвы тупо скидывая на диск дамп памяти. А ты будешь вертеться в гробу, когда кому-то придется править твой код.

Jurec :
Главное чтоб тебе было удобно.


Нет. Это не главное Улыбка.
_________________
Конец света в конце тоннеля
    Добавлено: 14:10 31-05-2008   
Jerry Rezet
 581 EGP


Рейтинг канала: 5(113)
Репутация: 86
Сообщения: 3365
Откуда: Санкт-Петербург.
Зарегистрирован: 01.04.2005
Diff :
"Творцов от программирования" надо убивать.
Начни с себя Гы-гы

А если серьёзно, то творчество тоже придерживается правил - есть они и в программировании, так что Jurec далеко не так уж неправ. Потому что когда "тупо в лоб" (по типу дампа вместо сейва) - это не творчество, это "тупо в лоб", типа как вместо того, чтобы рисовать человека его будут прикладывать к ватману, обводить по контуру, а потом мазать рожу краской и и бить головой о мольберт пока там не отпечатается оное лицо.. Вот за такое - надо.

А творчество - это за минимальное время, с минимальными усилиями достигнуть максимальных результатов (хотя в данном случае - это уже гением надо быть, чтобы этого достичь, обычные люди просто стараются достичь минимизации усилий при максимизации результата)..

А вы говорите..

добавлено спустя 1 минуту:
Хотя в некоторых случаях действительно удобно и дамп сделать (причём и программистам и прользователям)..
_________________
- Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c]

Последний раз редактировалось: Jerry Rezet (15:14 31-05-2008), всего редактировалось 1 раз
    Добавлено: 15:14 31-05-2008   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Jerry Rezet :
Начни с себя


Я стараюсь Улыбка.


Jerry Rezet :
Потому что когда "тупо в лоб" (по типу дампа вместо сейва) - это не творчество


Почему? Сам же пишешь, что
Jerry Rezet :
творчество - это за минимальное время, с минимальными усилиями достигнуть максимальных результатов


Дамп - это и есть за минимальное время с минимальными усилиями. Оригинальное такое решение. Работающее. Только потом почему-то переписывать приходится.

Jerry Rezet :
бить головой о мольберт пока там не отпечатается оное лицо


Программирование - это ни разу не живопись. Оно гораздо ближе к строительству. И если ударившись в сюрреализм ты будешь пренебрегать сопроматом и законом всемирного тяготения - в один прекрасный момент здание обрушится тебе на голову. Разумеется, место творчеству тут тоже есть - едва ли кто-то рискнет сказать, что, скажем, Эйфелева башня не есть произведение искусства. Но почему-то говоря о творческом процессе программирования, почти всегда имеют в виду именно такое пренебрежение основными законами и правилами.
_________________
Конец света в конце тоннеля
    Добавлено: 13:53 01-06-2008   
Канал Игры Мечты: «Злые беседы добрых программистов»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Пилот всегда летает, когда ходить уже не может.

  » Злые беседы добрых программистов | страница 8
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18