Вызывает интерес вот такой еще разрез

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Вызывает интерес вот такой еще разрез

Сообщение vada » 17.11.2015 11:45:44

Зачем в Lazarus-е реализован такой странный формат данных с описание формы?
Код: Выделить всё
object FormAbout: TFormAbout
  Left = 470
  Height = 231
  Top = 296
  Width = 402
  Caption = 'О проекте'
  ClientHeight = 231
  ClientWidth = 402
  OnCreate = FormCreate
  Position = poMainFormCenter
  LCLVersion = '1.4.0.4'
  object Panel1: TPanel
    Left = 8
    Height = 164
    Top = 8
    Width = 384
    ClientHeight = 164
    ClientWidth = 384
    TabOrder = 0
    object Label1: TLabel
      Left = 40
      Height = 72
      Top = 8
      Width = 335
      AutoSize = False
      Caption = 'Программа ..............'
      ParentColor = False
      WordWrap = True
    end
    object Label2: TLabel
      Left = 15
      Height = 13
      Top = 104
      Width = 173
      Caption = '(С) ОАО "МОСТЫ И КОПЫТА" 2011,-2015'
      ParentColor = False
    end
    object Image1: TImage
      Left = 8
      Height = 25
      Top = 24
      Width = 25
      Picture.Data = {
        1754506F727461626C654E6574776F726B477261706869637B01000089504E47
        0D0A1A0A0000000D49484452000000190000001908020000004B8B1234000000
        0467414D410000B18F0BFC61050000013249444154484BA595511283300844EB
        ED7A2CEFE1477F7A106F962EAC6120A0716C26B58EC6E7B2105C5A6B2F198B1E
        1F0F858085FFC96C9F3699C2C14F405BDBF67DC7319FC86BD67578DDFB8B6787
        17882E61FD39A043A3EBACF5E9808E8205DDB84AE6FDF39A0590B1EE9F17AC64
        D961A3857EE1A9E6A1FBC50CDA94D4359978DEB3D4978FDDE51A5DC6CAEA3541
        8388BB6619EEF05431A892505F038B5B22EB32D6E16966E518B1F47E8C41D71D
        BF58FDF4C802A45F81E5FD32CBB22EF37B083078CF7B432A4B965764A24E6BC2
        B259B24C91039DD7975337E6D1628CA0C81AFCEAD26A1693103B8FABD5C12FB5
        5F866F1FDC7AA4A41676B287082A9B10AE578DD0C5987B7466D184DE1572D7A6
        2EEC7234AC38C9CA9D67CA525C9CB30E53EBCA5F81E957A700F13BC4C1601F4F
        41FC00B53719832C1CF87E0000000049454E44AE426082
      }
    end
    object Label3: TLabel
      Left = 15
      Height = 13
      Top = 80
      Width = 54
      Caption = 'Версия 1.4'
      ParentColor = False
    end
    object Label4: TLabel
      Left = 15
      Height = 31
      Top = 128
      Width = 353
      AutoSize = False
      Caption = 'Правом пользования и распространения этого продукта обладает ОАО "МОСТЫ И КОПЫТА"'
      ParentColor = False
      WordWrap = True
    end
  end
  object BitBtn1: TBitBtn
    Left = 160
    Height = 30
    Top = 184
    Width = 75
    Caption = '&Закрыть'
    Kind = bkClose
    TabOrder = 1
  end
end


Почему, например, не XML? Или это реликты с времен начала начал Lazarus-а?
Поговорим?
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Вызывает интерес вот такой еще разрез

Сообщение Лекс Айрин » 17.11.2015 11:50:01

vada, да кому он нужен этот XML?
Скорее всего, для того чтобы можно было править руками.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Вызывает интерес вот такой еще разрез

Сообщение Vadim » 17.11.2015 11:51:52

vada
Так это реликт из Дельфи...
В XML смотрелось бы хуже, тогда уж JSON что ли... :-)

Добавлено спустя 1 минуту 12 секунд:
Это даже не совсем форма, это ресурсный файл с описанием формы.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Вызывает интерес вот такой еще разрез

Сообщение vada » 17.11.2015 11:56:50

Помоему, в дельфях уже давно XML.
И зачем его руками править? Лишние проблемы создавать? Парсить его крайне не удобно.
Для своих нужд набросал парсер для LFM-->XML. Неприятный такой получился. :wink:
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Вызывает интерес вот такой еще разрез

Сообщение Vadim » 17.11.2015 12:03:09

vada писал(а):Помоему, в дельфях уже давно XML.

"Давно" - это начиная с какой версии? В XE ещё такой же формат был, а дальше я не интересовался. Хотя нет, смотрел у XE5 - там уже какая-то абракадабра, ничего общего с XML не имеющая.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Вызывает интерес вот такой еще разрез

Сообщение vada » 17.11.2015 12:28:10

Да. Был не прав. Сейчас посмотрел в дельфийский DFM.... Тот же формат. Где я XML увидел? Уже и не помню. :( Почему-то был уверен что XML.
Теперь понятно от куда ноги растут. Но смысла особо не улавливаю. Парсить неудобно. Нет идинообразия формата.
Где-то набор данных описан
Код: Выделить всё
Panels = <   
      item
        Width = 100
      end   
      item
        Text = 'Файл исходных данных'
        Width = 150
      end   
      item
        Width = 500
      end   
      item
        Width = 0
      end>


другой набор:
Код: Выделить всё
Items.Strings = (
              'Наружный'
              '1-й внутренний'
              '2-й внутренний'
              '3-й внутренний'
              '4-й внутренний'
              '5-й внутренний'
            )

еще более другой вариант:
Код: Выделить всё
Glyph.Data = {
            36030000424D3603000000000000360000002800000010000000100000000100
            0000FF8000FF8000FF8000FF8000FF8000FF8000FF8000FF8000
          }


Безумие какое-то :(
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Вызывает интерес вот такой еще разрез

Сообщение Лекс Айрин » 17.11.2015 12:31:55

vada писал(а):И зачем его руками править? Лишние проблемы создавать? Парсить его крайне не удобно.


ситуации разные бывают... пару раз и правил. Правда, скорее косметически, но все же... А насчет парсинга... не вижу большой разницы... скорее даже с парсингом XML больше проблем -- надо будет еще и теги стирать, пролог... К тому же, насколько я помню, XML это НЕ формат файла. Это язык разметки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Вызывает интерес вот такой еще разрез

Сообщение alexs » 17.11.2015 12:35:36

vada писал(а):Зачем в Lazarus-е реализован такой странный формат данных с описание формы?

А чем он плох?
Читаемость у него гораздо лучше, чем xml. Компактен. Легко сжимается в ресурсах.

PS
И вообще - чего все так от XML тащатся? Достаточно убогий формат. :D
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Вызывает интерес вот такой еще разрез

Сообщение Лекс Айрин » 17.11.2015 12:36:41

vada писал(а):Парсить неудобно. Нет идинообразия формата.


парсинг этот вообще достаточно сложная процедура. На самом деле все просто -- это все отображение в текстовый файл соответствующих структур паскаля. Соответственно, парсинг тут достаточно легкий.

Добавлено спустя 49 секунд:
alexs, скорее всего, потому что это модно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Вызывает интерес вот такой еще разрез

Сообщение vada » 17.11.2015 12:43:17

Лекс Айрин
XML это НЕ формат файла. Это язык разметки.

Это что-то меняет?
Для XML наработана гуева туча библиотек и технологий. Писать парсер для XML сейчас смысла нет - все уже написано до нас.
Есть такая чудесная штука как XSLT преобразование. Имяе XSL шаблон и XML файл можно очень интересные вещи делать. Кстати и на паскале.
Генерировать паскаль код по структуре данных, компилировать его и выполнять. Вкусняшка! :)

Добавлено спустя 10 минут 18 секунд:
alexs
А чем он плох?
Читаемость у него гораздо лучше, чем xml. Компактен. Легко сжимается в ресурсах.

1. XML с подсветкой синтаксиса читается еще лучше. (Откройте любой XML в редакторе лазаруса)
2. Компактнее? Да не очень. файл main.lfm 201292 байта. main.xml 215583 байта.
3. Сжимается в ресурсы. main_lfm.zip 29799 байт main_xml.zip 31263 байта
Большой разницы не вижу.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Вызывает интерес вот такой еще разрез

Сообщение Лекс Айрин » 17.11.2015 13:02:41

vada писал(а):Это что-то меняет?


Да, многое.

vada писал(а):Для XML наработана гуева туча библиотек и технологий. Писать парсер для XML сейчас смысла нет - все уже написано до нас.

И чо! Для файла ресурсов Лазаря его практически школьник напишет.

vada писал(а):Есть такая чудесная штука как XSLT преобразование. Имяе XSL шаблон и XML файл можно очень интересные вещи делать. Кстати и на паскале.

Интересные вещи можно делать не только на основе XSLT...

Единственный плюс от XML , допустим, в docx, это то, что можно будет достаточно легко выдернуть текст из поврежденного файла.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Вызывает интерес вот такой еще разрез

Сообщение vada » 17.11.2015 13:10:04

Лекс Айрин
Интересные вещи можно делать не только на основе XSLT...

Делайте. :) Не собираюсь Вас в свою религию обращать :)
Просто вижу большую странность и нелогичность формата LFM. Об этом и хотел поговорить.

Добавлено спустя 4 минуты 38 секунд:
Кстати, формат DFM отличается от LFM. С преемственностью не очень...
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Вызывает интерес вот такой еще разрез

Сообщение Vadim » 17.11.2015 13:17:05

vada писал(а):Просто вижу большую странность и нелогичность формата LFM.

Так Вы об этом разработчикам Lazarus напишите. Здесь этот вопрос практически никого не волнует (кроме Вас ;-) ). Лично я исходники формы Lazarus не парсю и никогда не парсил. Даже не знаю, зачем это нужно. Однако пару раз было, что из-за "левого" компонента проект не компилился и сам компонент в Лазарь не подгружался. Я его ручками из текстового файла удаляю и - оп ля, опять всё зашибись. :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Вызывает интерес вот такой еще разрез

Сообщение vada » 17.11.2015 13:38:31

Здесь этот вопрос практически никого не волнует

Вот это странно.
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Вызывает интерес вот такой еще разрез

Сообщение debi12345 » 17.11.2015 14:03:38

XML и прочие тэговые форматы все-таки удобнее , в них легко контроллирвать вложенность - это может выручить при ручном редактировании (или как упоминалось - парсинге).
В MSE такой же формат как у Лазаря - и когда эти файлы повреждались из-за ошибок IDE, несколько раз приходилось редизайнить GUI сначала (так как не удавалось вручную исправить файлы из-за их запутаннссти).
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 228

Рейтинг@Mail.ru