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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подскажите какой сделать формат вывода, Есть ли стандарты для CLI-приложениях? 
:(
    Опции темы
EvilsInterrupt
Дата 23.2.2013, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Мне нужно реализовать вывод в человеко-читаемом виде. У меня имеется тип plain для опции '--format' в моем проекте консольного приложения. Мне хочется сделать достаточно удобно и чтобы глаза пользователя читающего вывод быстро находили нужную ему информацию.

Разрабатываемое консольное приложение нацелено на системных программистов. Приложение читает файл и выводит информацию о его строении. Одна группа опций это headers-опции, они показывают в "сыром" виде значения хидеров. Другая группа опций это details-опции, они выводят уже информацию после небольшого анализа приложением.

Привожу примеры, возможных вариантов:

Цитата

#
# Variant 1:
#

Dos Header:
    Magic number                      :
    Bytes on last page of file        :
    Pages in file                     :
    Relocations                       :
    Size of header in paragraphs      :
    Minimum extra paragraphs needed   :
    Maximum extra paragraphs needed   :
    Initial (relative) SS value       :
    Initial SP value                  :
    Checksum                          :
    Initial IP value                  :
    Initial (relative) CS value       :
    File address of relocation table  :
    Overlay number                    :
    Reserved words                    :
    OEM identifier (for e_oeminfo)    :
    OEM information; e_oemid specific :
    Reserved words                    :
    File address of new exe header    :

#
# Variant 2:
#

Dos Header:
                         Magic number :
           Bytes on last page of file :
                        Pages in file :
                          Relocations :
         Size of header in paragraphs :
      Minimum extra paragraphs needed :
      Maximum extra paragraphs needed :
          Initial (relative) SS value :
                     Initial SP value :
                             Checksum :
                     Initial IP value :
          Initial (relative) CS value :
     File address of relocation table :
                       Overlay number :
                       Reserved words :
       OEM identifier (for e_oeminfo) :
    OEM information; e_oemid specific :
                       Reserved words :
       File address of new exe header :

#
# Variant 3:
#

IMAGE_DOS_HEADER:
    e_magic    :
    e_cblp     :
    e_cp       :
    e_crlc     :
    e_cparh    :
    e_minal    :
    e_maxal    :
    e_ss       :
    e_sp       :
    e_csum     :
    e_ip       :
    e_cs       :
    e_lfarlc   :
    e_ovno     :
    e_res[4]   :
    e_oemid    :
    e_oemin    :
    e_res2[10] :
    e_lfanew   :

#
# Variant 4:
#

IMAGE_DOS_HEADER:
       e_magic :
        e_cblp :
          e_cp :
        e_crlc :
       e_cparh :
       e_minal :
       e_maxal :
          e_ss :
          e_sp :
        e_csum :
          e_ip :
          e_cs :
      e_lfarlc :
        e_ovno :
      e_res[4] :
       e_oemid :
       e_oemin :
    e_res2[10] :
      e_lfanew : 


уверен что это не весь набор вариантов. Поэтому и обращаюсь за советом: Какой придумать или какой выбрать? Может кто-то встречал какой-либо негласный стандарт?
PM MAIL WWW ICQ Jabber   Вверх
mes
Дата 23.2.2013, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(EvilsInterrupt @  23.2.2013,  09:26 Найти цитируемый пост)
У меня имеется тип plain для опции '--format'


Цитата(EvilsInterrupt @  23.2.2013,  09:26 Найти цитируемый пост)
или какой выбрать? 

или оставить выбор пользователю: --align_left --align_right   smile 


--------------------
PM MAIL WWW   Вверх
EvilsInterrupt
Дата 23.2.2013, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



mes
Тогда еще вопросы:
1) Что лучше текстовое описание поля (File address of new exe header) или же название поля в программном коде( e_lfanew ) ?
2) 2.1 Как лучше всего значения полей, потом через разделитель их описания или же 2.2 Сначала описания полей, потом через делимитер их значения?

PM MAIL WWW ICQ Jabber   Вверх
mes
Дата 23.2.2013, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



для кого текст, для того кто знает поля в программном коде ?!

Цитата(EvilsInterrupt @  23.2.2013,  09:45 Найти цитируемый пост)
1) Что лучше текстовое описание поля (File address of new exe header) или же название поля в программном коде( e_lfanew ) ?

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

А вообще если речь идет о формате, то есть такое слово  "шаблон" - и никакой головной боли по представлению.. ;)


--------------------
PM MAIL WWW   Вверх
Amp
Дата 23.2.2013, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(EvilsInterrupt @  23.2.2013,  10:26 Найти цитируемый пост)
чтобы глаза пользователя читающего вывод быстро находили нужную ему информацию.

Чаще пользователи берегут свои глаза и вывод консольного приложения просто скармливают grep-у. Особенно если вывод может растянуться на несколько экранов, а интересует всего одна-две строки. По личным ощущениям, выравнивание по правому краю не самое удачное решение - очень сложно вычитывать из-за того, что строки имеют разные отступы.
PM MAIL   Вверх
EvilsInterrupt
Дата 23.2.2013, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

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



Amp
Цитата

 и вывод консольного приложения просто скармливают grep-у

Согласен, сам так делаю когда тулза не моя, а данных через чур много! ;) Но к примеру после readelf я ничего никогда не "грепаю", потому что могу пропустить какие-либо значение, которые могут дать новые гипотезы, что помогут в изучении файла.

Цитата

"шаблон" - и никакой головной боли по представлению..

Конечно, но это тогда когда интерпретации шаблона реализована.

Цитата

а не по программным структурам.. 

Я как-то разложил для Mach-O формата по "логическим данным", на что меня спросили "Ну и где я по твоему должен искать поле сегмента и энтропию по нему?". Просто понятие "логика" весьма скользкое. Кто-то отталкивается относительно одних суждений, а кто-то от других, а т.к. нет возможности залезть к каждому в голову, то лучше всего именно относительно программных структур.

PM MAIL WWW ICQ Jabber   Вверх
mes
Дата 23.2.2013, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(EvilsInterrupt @  23.2.2013,  16:04 Найти цитируемый пост)
Просто понятие "логика" весьма скользкое. Кто-то отталкивается относительно одних суждений, а кто-то от других, 

а кто то от стандарта..

Добавлено через 1 минуту и 27 секунд
Цитата(EvilsInterrupt @  23.2.2013,  16:04 Найти цитируемый пост)
Конечно, но это тогда когда


Цитата(EvilsInterrupt @  23.2.2013,  09:26 Найти цитируемый пост)
 Поэтому и обращаюсь за советом: Какой придумать

 smile

Добавлено через 5 минут и 24 секунды
Цитата(EvilsInterrupt @  23.2.2013,  16:04 Найти цитируемый пост)
то лучше всего именно относительно программных структур.

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


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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