LINUX.ORG.RU

Создал программу создания таблиц, как расшарить?


0

1

Собственно сидел, никого не трогал, вдруг - кирпич на голову - БАЦ!

И я подумал: «а не написать ли мне программу для отрисовки таблиц с помощью Unicode-символов.» Взял да и написал. Just for fun.

Теперича я так на неё посмотрел, и подумал: «а почему бы мне не поделиться?». И решил поделиться. Программа таки по моему мнению не говно, поэтому выкладываю на суд общественности:

Архив: http://rghost.ru/36967615 (Скажите, куда скинуть - перекину, если проблемы)

Что умеет:

1) Рисовать простые таблицы.
2) Рисовать фиксированные ячейки.
3) Рисовать фиксированные ячейки двумя стилями: solid и double.
4) Регулировать размер ячейки.

Параметры:

┏━━━━━━━━━━━━━━━━━┓
┃     TABLER      ┠───────────────────────────────────────┐
┗━━┯━━━━━━━━━━━━━━┛     AVAILABLE PARAMETERS:             │
   │ -h      : This message.                              │
   │ -s=cxr  : Set number of cols (c) and rows (r).       │
   │ -f=cxr  : Set number of fixed cols (c) and rows (r). │
   │ -c=wxh  : Set cell size: width (w) and height (h).   │
   │ -d=y/n  : Use double fixed cell style?               │
   └──────────────────────────────────────────────────────┘

Очень хотелось бы видеть эту программу в каком-нибудь репозитории. Есть какие-нибудь шансы? (Ну типа по телевизору показывают жуликов - ну чем я хуже? Ну программа-то как бы немного и полезная)

___________________________________________________
Теперь Extreme Advertising для тех, кто не понял предыдущих параграфов:

Эй, ты! Да, ТЫ! Ты еще не слышал об уникальной возможности?
НЕТ???
Тогда держи свои уши и глаза открытыми!
Только сейчас у тебя появилась уникальная возможность получить кое-что на халяву!
Святая преисподняя, это ведь ПРОГРАММА!!
Держу пари на кружку пива, что ты даже не знаешь, что она делает!
ОНА РИСУЕТ ТАБЛИЦЫ!!
Да ты теперь можешь выкинуть свой LibreOffice Calc или не дай Патрег Excel!
Рыжая колбаса ястреба, да ты теперь можешь рисовать таблицы в КОНСОЛИ!
Теперь все телки твои, ведь ты теперь - КРУТОЙ ХАКЕР!
1) Скачай архив,
2) Распакуй его,
3) И запусти свой любимый терминал!
Теперь повторяй за мной это немыслимое заклинание:

./tabler -s=12x10 -c=3x1 -f=1x2 -d=y
Нажми свою клавишу ENTER, если ты еще в состоянии её найти и не умер от удовольствия. Наслаждайся ТАБЛИЦЕЙ!
╔═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╦═══╗
║   ║   ║   ║   ║   ║   ║   ║   ║   ║   ║   ║   ║
╠═══╬═══╬═══╬═══╬═══╬═══╬═══╬═══╬═══╬═══╬═══╬═══╣
║   ║   ║   ║   ║   ║   ║   ║   ║   ║   ║   ║   ║
╠═══╬═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╩═══╝
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╠═══╣───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
║   ║   │   │   │   │   │   │   │   │   │   │   │
╚═══╝───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
О Патрег, я уже ХОЧУ ЕЁ!
Пресвятой Столлман, да я же могу ПИСАТЬ В НЕЙ!
ДА ТУТ ЖЕ ЕЩЕ И ФИКСИРОВАННЫЕ ЯЧЕЙКИ ЕСТЬ!!
Ты все еще стоишь? Заведи себе файл и сохраняй туда эти таблицы!
Скорее, пока это не сделал кто-то ДРУГОЙ!
Разве ты хочешь, чтобы кто-то был круче тебя?
КАЧАЙ СКОРЕЕ!!

Так оно умеет рисовать такие красивые штуки как первая в посте или только обычную сетку как вторая?

staseg ★★★★★
()
Ответ на: комментарий от staseg

Пока только вторая. Первый «скрин» - вывод справки. Работаю над автовписыванием текста.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Бинарник лучше не хранить в репозитории (если хочется, лучше его выложи в секции Downoads) и cmake или autotools (по вкусу) оберни.

Longer
()
Ответ на: комментарий от Longer

Если покажете, как - оберну. просто я этими делами никогда не занимался и не знаю, как это делается.

AlexCones ★★★
() автор топика
Ответ на: комментарий от Kalashnikov

Таблички в хэлпе захардкодены

А что такого?

Procedure Draw01;
...
Procedure Draw12;

Ок, как назвать 12 одинаковых функций, которые рисуют по одному символу от _ до ╬?

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

А что такого?

Ну, это несколько дискредитирует программу, которая рисует собственно таблицы, не находишь?

как назвать 12 одинаковых функций

Осмысленно. По углам или символам которые они рисуют, чтоб можно было не глядя в реализацию назвать функцию, рисующую ╣ например и наоборот, сказать какой символ рисует функция по одному её имени. Хз, NorthWestSouthDouble, или UpDownThin например.

Kalashnikov ★★★
()
Ответ на: комментарий от Kalashnikov

Хз, NorthWestSouthDouble, или UpDownThin например.

Вот и я ХЗ, тем более, что функции внутренние, и дальше функции DrawTable никуда не пойдут. И так видно, какой символ кто рисует.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Ок, как назвать 12 одинаковых функций, которые рисуют по одному символу от _ до ╬?

Сделать одну функцию, ей параметром передавать enum. Не знаю, как оно в Паскале, попробую просто обозначить так:

enum corners { LeftRight, UpDown, Horizontal, Vertical, ..., LeftUpDouble, HorizintalDouble, ... };

и функция void DrawCorner(Corner corner);

в ней в зависимости от corner, через switch{case} рисуй нужные символы.

anonymous
()
Ответ на: комментарий от AlexCones

Получится то же самое в плане читаемости, что и сейчас

DrawCorner(Horisontal)
то же самое что и
Draw01()
?

только места больше займет.

Я бы понял этот аргумент лет двадцать назад, когда винты были по 20-40 мегабайт. Не надо беречь машинные ресурсы - человеческие ресурсы всегда дороже. Один раз потратив чуток больше ресурсов при написании кода, в последствии будет тратиться значительно меньше ресурсов при его вычитке (а вычитка кода значительно более частая операция, чем написание кода).

P.S. таки надо будет запилить редактирование комментов с историей. С третьей попытки получилось :(.

Slavaz ★★★★★
()

О Патрег, <censored>!

(починил)

оно на паскале... чо уж не на бейсике?!

aol ★★★★★
()
Ответ на: комментарий от AlexCones

Вот и я ХЗ

Ну я принцип только описал, главное чтоб логика была. Анон лучше предложил (только хз как там три палки называть), я бы ещё только тип (двойной/толстый/что там ещё) вынес вторым параметром.

А в плане читаемости всё куда лучше, да и места (что вообще за аргумент?) как раз таки меньше: Один енум и одна функция рисования со свичем, или даже просто таблицей в виде массивова символов где индекс - значение енума/константы.

Kalashnikov ★★★
()
Ответ на: комментарий от Kalashnikov

только хз как там три палки называть

HorisontalAndUp, VerticalAndRight

Аноном я был.

Slavaz ★★★★★
()
Ответ на: комментарий от anonymous

Таки уже запилил. Ищите ссыль в треде.

AlexCones ★★★
() автор топика
Ответ на: комментарий от Slavaz

Я бы понял этот аргумент лет двадцать назад, когда винты были по 20-40 мегабайт. Не надо беречь машинные ресурсы

Вы не с той стороны стоите. Так говорят вендузятнеги. Если мы все будем срать на этой стороне, то получится новый шишдовс.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

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


12 копипасченных функции это так юниксвейно.

Dragon59 ★★
()
Ответ на: комментарий от AlexCones

Вы не с той стороны стоите. Так говорят вендузятнеги.

Значит, они постигли дзен UNIX :)

Если мы все будем срать на этой стороне, то получится новый шишдовс.

Нет, не получится. Если оставаться в контексте топика, то писание большего количества букв, чтобы люди лучше понимали исходник, будет более оправданным, чем экономия сотни-другой килобайт исходников.

Пример:

c1_18(aPmt);

байты экономит и всё такое... но заставляет человеков лезть в имплементацию функции (или в доки), чтобы понять, что a1_18 успешно завержает транзакцию. Да и требует при первом взгляде на строку искать выше по тексту, что обозначает aPmt. Можно, конечно, влупить комментарий с пояснением к этой строке, но никакой экономии байтиков уже не будет.

Теперь напишем так:
commitBussinessTransaction (amountPayment);

Можно сказать, что комментарии излишни.

Slavaz ★★★★★
()
Ответ на: комментарий от Dragon59

А где вы там копипаст увидели? Там у каждой функции свои условия, которые пять часов подбирались.

AlexCones ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.