Псевдографика в Linux... Способы реализации?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 13.05.2008 12:32:44

Собственно говоря сабж,..
Просто вспоминая давно минувшие вмемена MS-DOS (где всевозможные рамки чертились на основе символьной графики) хотелось бы узнать, как подобное реализуется в связке FPC+Linux.
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение B4rr4cuda » 13.05.2008 12:55:06

А что мешает использовать ту же методу?
Можно ещё ncurses использовать. Это даже лучше...
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 13.05.2008 13:32:00

to B4rr4cuda
>>... что мешает использовать ту же методику?

Просто раньше я получал псевдографический символ нажатием определенной комбинации клавиш, например сочетание Alt+205 давало двойную горизонтальную черту, а Alt+179 - закрашеный символ (что-то вроде сетки). Как эти символы получить в IDE под Linux? Быть может есть их представление в шестнадцатеричной системе?
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение Vadim » 13.05.2008 14:39:04

Andreich
Alt+205:=#205;
Alt+179:=#179;
По-моему всё достаточно просто. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 13.05.2008 14:59:00

Нет, не все так просто... Если в программе я пишу Write(#205); то в консоли такой символ отбражается как вопрос в ромбике!
Быть может что с кодировкой?
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение Vadim » 13.05.2008 15:11:38

Andreich писал(а):Быть может что с кодировкой?

Совершенно верно. Надо указывать те коды символов, кодировка которых стоит в Вашей системе.

Добавлено спустя 5 минут 43 секунды:
Вот, можно посмотреть нужные коды:
Код: Выделить всё
Var
  i: integer;
Begin
  For i:=0 To 255 Do
  Begin 
    Write(i:3, '=',Chr(i), ' ');
    If i mod 15 = 0 Then
      WriteLn;
  End;
End.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 13.05.2008 15:36:55

Я уже пробовал делать подобное, но вот незадача - нормально отображаются только первые 128 символов. Первая половина кодовой таблицы отвечающая за латинские буквы и спец.символы (~!"№;%:?*) отображается, а вот вторая половина (нац.кодировка) не работает,.. все теже вопросы. Работаю в Ubuntu 8.04, UTF-8.
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение Vadim » 13.05.2008 15:55:24

В UTF-8 кодировка русских и любых других нелатинских символов далеко выходит за пределы первого байта. Так что лучше посмотреть таблицу перекодировки для UTF-8, иначе придётся перебирать полный четырёхбайтный диапазон...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Псевдографика в Linux... Способы реализации?

Сообщение B4rr4cuda » 13.05.2008 16:24:49

Запусти charmap и посмотри коды символов, которые тебе нужны...
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 13.05.2008 17:19:05

Да уж, с предложением про charmap не поспоришь!
Часть символов нашел,... (их там реально много!).
Если получится что-нибудь интересное - обязательно отпишусь!

Добавлено спустя 16 часов 31 минуту 28 секунд:
В ходе экспериментов возникла следующая проблема: при попытке вывести подряд более 25 символов строка обрывается и вывод продолжается со следующей строки.... Причем это происходит лишь для символов псевдографики, для обычных символов (123...ABCdef....) все нормально! В чем загвоздка? Кто-нибудь с таким сталкивался?
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение alexs » 14.05.2008 10:49:47

может какой-то управляющий симовол идёт? или вне зависимости от диапазона символов всегда на 25?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 14.05.2008 11:46:13

Да вроде бы нет никаких управляющих символов.... Использую обычный WriteLn.
В качестве символа - горизонтальная черта (взятая из Character Map).
Визуально проблема выглядит следующим образом: http://www.danilov.hotmail.ru/win_error.gif (4.9 Kb).
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение B4rr4cuda » 14.05.2008 12:48:44

А код, её выводящий, увидеть можно?
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Псевдографика в Linux... Способы реализации?

Сообщение Andreich » 14.05.2008 15:24:13

Код, проще не придумаешь!

Код: Выделить всё
program new;
uses crt;

Begin
  ClrScr;
  Write('─────────────────────────────────────'); 
end.


Добавлено спустя 5 минут 8 секунд:
Сам символ в таблице сопровождается следующими коммертариями:
-------------------------------
U+2500 BOX DRAWINGS LIGHT HORIZONTAL

General Character Properties

Unicode category: Symbol, Other

Various Useful Representations

UTF-8: 0xE2 0x94 0x80
UTF-16: 0x2500

C octal escaped UTF-8: \342\224\200
XML decimal entity: ─

Annotations and Cross References

Alias names:
• Videotex Mosaic DG 15
Andreich
постоялец
 
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Re: Псевдографика в Linux... Способы реализации?

Сообщение B4rr4cuda » 14.05.2008 17:59:39

Andreich писал(а):program new;
uses crt;

Begin
ClrScr;
Write('─────────────────────────────────────');
end.

Это у меня вполне корректно выводит линию. Возможно, сам того не заметив, ты в середине строки вписал неотображаемый символ. Попробуй открыть исходник vim -ом, тот отображает все.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

След.

Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

Рейтинг@Mail.ru