Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ASCII [D6, Win2k]


МИФИст ©   (2002-06-08 19:33:00) 

Подскажите как в Мемо выводить информацию в ASCII виде, например,
чтобы символ $6 выводился как "пиковая масть", а не как прямоугольник или твёрдый знак?

Я пробовал вот так не получается:

StrASCII: String;
Buffer: array[0..1599] of Char;
...
StrASCII:=StrASCII+Chr(Ord(Buffer[i]))+" ";
...
Form1.Memo1.Text:=StrASCII;


rhf   (2002-06-08 23:21:00) [1]

ну поздравляю !!!


MaximatorVeter   (2002-06-08 23:16:00) [2]

Да!


rhf   (2002-06-08 23:05:00) [3]

просто укажи font - Terminal во время конструирования или

memo1.Font.Name:="Terminal";
memo1.Font.charset:=OEM_CHARSET;
memo1.Lines.add(#6);

в райнтайм


MaximatorVeter   (2002-06-08 22:57:00) [4]


> rhf ©


Это все понятно, а вот в Дельфи как сделать?Я заинтерисовался ...


rhf   (2002-06-08 22:54:00) [5]

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


MaximatorVeter   (2002-06-08 22:47:00) [6]


> rhf ©

Для шрифта TERMINAL, как и для всех остальных нет кодировки ASCII (cм. свойство Memo1.Font.Charset ...


rhf   (2002-06-08 22:39:00) [7]

2 MaximatorVeter, да получим если поставить шрифт TERMINAL - он же в дос-кодировке все показывает, вот только при этом весь русский текст уйдет в никуда :(
.... короче не самое хорошее решение :)


MaximatorVeter   (2002-06-08 22:11:00) [8]

Вот и подошли к разгадке - в Windows Memo то мы "пичку" не получим?


rhf   (2002-06-08 22:07:00) [9]

2 MaximatorVeter, ты таблицу ASCII посмотри, в кодировке DOS


MaximatorVeter   (2002-06-08 21:35:00) [10]

Тогда так:
var
StrASCII: String;
Buffer: array[0..1599] of Byte;
i:word;
begin
for i:=0 to 1599 do
StrASCII:=StrASCII+Chr(Buffer[i])+" ";
Memo1.Text:=StrASCII;
end;


Но если в Buffer встретиться zero, то дальше ничего не отобразиться (конец строки).
Интересно, а какой это шрифт, у которого на шестой позиции пика?


rhf   (2002-06-08 21:17:00) [11]

ну ты шрифт смени и увидишь свои картинки :)


МИФИст   (2002-06-08 21:13:00) [12]

Мы друг друга не поняли. В шестнадцатеричном виде следующий код:
06 С0 21 05 06, это в Мемо либо вообще не отображается, либо в виде прямоугольников, а должно быть


rhf   (2002-06-08 21:11:00) [13]

а ты используй шрифт другой - например TERMINAL
хотя это наверное отразиться на остальном русском тексте :)


MaximatorVeter   (2002-06-08 20:17:00) [14]

var
StrASCII: String;
Buffer: array[0..1599] of Char;
i:word;
begin
for i:=0 to 1599 do
StrASCII:=StrASCII+IntToStr(Byte(Buffer[i]))+" ";
Memo1.Text:=StrASCII;
end;


GL ...


MaximatorVeter   (2002-06-08 20:08:00) [15]


> МИФИст © (08.06.02 19:33)
> Подскажите как в Мемо выводить информацию в ASCII виде


Это значит каждому символу будет соответствовать байтовый код ...


MaximatorVeter   (2002-06-08 19:53:00) [16]

$6 это вроде как число, а не символ ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо