Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Участников: 5
Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Неудовлетворённый текущим положением дел с кириллическими шрифтами в FreeBasic, написал библиотеку их русификации. Конечно, можно было сделать всё проще, но тогда потребовалось перекомпилирование FreeBasic. В общем, подключение библиотеки производится после первого screen - следующая за ним строка:
В итоге можем печатать русский текст стандартными операторами Print и Input (Input, к сожалению, русские символы для ввода не принимает):
Библиотеку скачиваем с "народа": http://narod.ru/disk/27440637000/albom_font_0.1.zip.html
Пишем здесь пожелания и замечания. Выкладываем хорошие шрифты и таблицы перекодировки (о форматах расскажу позже, если кого-то заинтересует).
- Код:
#Include Once "albom_font.bi"
В итоге можем печатать русский текст стандартными операторами Print и Input (Input, к сожалению, русские символы для ввода не принимает):
Библиотеку скачиваем с "народа": http://narod.ru/disk/27440637000/albom_font_0.1.zip.html
Пишем здесь пожелания и замечания. Выкладываем хорошие шрифты и таблицы перекодировки (о форматах расскажу позже, если кого-то заинтересует).
Albom- Сообщения : 10
Дата регистрации : 2010-10-04
Возраст : 39
Откуда : Харьков
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Большое спасибо! Наконец то =) Я до сих пор пользовался нарисованными мной шрифтами и Draw String. Теперь можно меньше заморачиваться.
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Пожалуйста! Пользуйтесь на здоровье!
Albom- Сообщения : 10
Дата регистрации : 2010-10-04
Возраст : 39
Откуда : Харьков
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Версия 0.2. Теперь со вкусом мёда и лимона. Добавлена родная кодировка 866. Теперь проще выводить кириллические символы и в текстовом, и в графических режимах. Однако редактор fbedit ужасно работает с этой кодировкой (просматривать текст в этой кодировке можно при помощи моих ttf шрифтов в 866 кодировке, а вот редактирование невозможно - нужно менять раскладку).
http://narod.ru/disk/2352971001/albom_font_0.2.zip.html
http://narod.ru/disk/2352971001/albom_font_0.2.zip.html
Albom- Сообщения : 10
Дата регистрации : 2010-10-04
Возраст : 39
Откуда : Харьков
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Albom пишет:Версия 0.2.Теперь со вкусом мёда и лимона.Добавлена родная кодировка 866. Теперь проще выводить кириллические символы и в текстовом, и в графических режимах. Однако редактор fbedit ужасно работает с этой кодировкой (просматривать текст в этой кодировке можно при помощи моих ttf шрифтов в 866 кодировке, а вот редактирование невозможно - нужно менять раскладку).
http://narod.ru/disk/2352971001/albom_font_0.2.zip.html
Скачал, спасибо.
Вот еще бы FBEDIT по нормальному работал бы со шрифтами, а то что то скопировать из него (русское) и вставить в другой редактор,полная ж.па
Похоже KetilO-автор редактора пропал....
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Уважаемый "trew", удалось ли Вам "сломать" ситуацию со шрифтами?trew пишет:Вот еще бы FBEDIT по нормальному работал бы со шрифтами, а то что то скопировать из него (русское) и вставить в другой редактор,полная ж.па
Может быть, кто-нибудь скажет что-нибудь обнадеживающее?
Рассматривается редактор FBEdit (только!) в операционной системе Windows (только!), все варианты которой понимают кодировку cp866 (DOS) – в ней, например, выводятся беленькие буковки на черном экране при загрузке системы... Вопрос: Что нужно сделать, чтобы редактор FBEdit правильно отображал в своем окне редактирования (к слову, как правильно называются отдельные окошки редактора?) текст (листинг программы, включая комментарии на русском), набранный в любом другом редакторе и сохраненный в виде текстового файла в кодировке cp866 (DOS)?
ruddy- Сообщения : 15
Дата регистрации : 2011-11-14
Откуда : Москва
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
ruddy пишет:Уважаемый "trew", удалось ли Вам "сломать" ситуацию со шрифтами?trew пишет:Вот еще бы FBEDIT по нормальному работал бы со шрифтами, а то что то скопировать из него (русское) и вставить в другой редактор,полная ж.па
Может быть, кто-нибудь скажет что-нибудь обнадеживающее?
Рассматривается редактор FBEdit (только!) в операционной системе Windows (только!), все варианты которой понимают кодировку cp866 (DOS) – в ней, например, выводятся беленькие буковки на черном экране при загрузке системы... Вопрос: Что нужно сделать, чтобы редактор FBEdit правильно отображал в своем окне редактирования (к слову, как правильно называются отдельные окошки редактора?) текст (листинг программы, включая комментарии на русском), набранный в любом другом редакторе и сохраненный в виде текстового файла в кодировке cp866 (DOS)?
1) Евгений! trew=haav.Здесь я уже все написал , что знал по поводу шрифтов.
2) Albom , написавший библиотеку шрифтов, не стал бы утруждаться, если бы были более легкие пути решения этой проблемы.
3) Если Вам это очень сильно нужно, можете взять исходные тексты компилятора или редактора FbEdit и править под себя. Тогда может быть будут те символы, какие вы хотите. В обоих случаях вам будет нужно:
а) Знать 100% FreeBasic
б) Не полностью , но знать С++ , а в случае с редактором ассемблер
в) Иметь хорошие знания о компиляции и компиляторах
г) Потратить немалое время на изучение исходных текстов компилятора или редактора
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Какая неожиданная встреча – здрасьте! Уверен, есть путь решения проблемы!
В каталоге программы редактора FbEdit C:\Program Files\fbedit\ два шрифта:
cft.ttf (Coding Font Tobi) и Dina.fon – оба не имеют, как мне показалось, в составе русских символов... Возможно, нужно заменить один из этих файлов.
В редакторе: Настройки > Свой шрифт > Dina.fon но для меня это почти ничего не значит – во-первых, нет уверенности, что это то, что нужно, во-вторых, на какой файл я должен его поменять...
Что значит: "мне очень сильно нужно"? А Вам, а всем?
Как металлург - в этом не сильно нуждаюсь, как нормальный человек – просто дивлюсь отсутствием интереса к этой проблеме у специалистов (или просто они лапшу на уши вешают)! Если у Вас возникнут вопросы, например, о вариантах переработки радиоактивных отходов на НПО "Маяк" не буду заставлять Вас изучать неорганическую химию, термодинамику и кинетику металлургических процессов! Просто честно признаюсь, что там возникли проблемы не металлургического, а политического характера... А в программировании какие?
В каталоге программы редактора FbEdit C:\Program Files\fbedit\ два шрифта:
cft.ttf (Coding Font Tobi) и Dina.fon – оба не имеют, как мне показалось, в составе русских символов... Возможно, нужно заменить один из этих файлов.
В редакторе: Настройки > Свой шрифт > Dina.fon но для меня это почти ничего не значит – во-первых, нет уверенности, что это то, что нужно, во-вторых, на какой файл я должен его поменять...
Что значит: "мне очень сильно нужно"? А Вам, а всем?
Как металлург - в этом не сильно нуждаюсь, как нормальный человек – просто дивлюсь отсутствием интереса к этой проблеме у специалистов (или просто они лапшу на уши вешают)! Если у Вас возникнут вопросы, например, о вариантах переработки радиоактивных отходов на НПО "Маяк" не буду заставлять Вас изучать неорганическую химию, термодинамику и кинетику металлургических процессов! Просто честно признаюсь, что там возникли проблемы не металлургического, а политического характера... А в программировании какие?
ruddy- Сообщения : 15
Дата регистрации : 2011-11-14
Откуда : Москва
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Чтобы написать библиотеку, пришлось общаться с разработчиками FreeBasic, ковыряться в коде компилятора (кстати, его легко русифицировать, т.е. внедрить кириллические шрифты по умолчанию, но делать это я не собираюсь), разбираться в форматах шрифтов, использовать чужой и писать свой софт для работы с этими шрифтами. А вот до FbEdit руки не дошли, да и надобности уже не было. Кому интересно, могут почитать о создании библиотеки:
Англоязычный форум
О библиотеке на моём блоге - http://albom85.livejournal.com/48127.html
О шрифте на моём блоге - http://albom85.livejournal.com/41804.html
Англоязычный форум
О библиотеке на моём блоге - http://albom85.livejournal.com/48127.html
О шрифте на моём блоге - http://albom85.livejournal.com/41804.html
Последний раз редактировалось: Albom (Пн Ноя 28, 2011 1:35 pm), всего редактировалось 2 раз(а)
Albom- Сообщения : 10
Дата регистрации : 2010-10-04
Возраст : 39
Откуда : Харьков
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Уважаемый Albom, я догадывался, что проблем не из простых (и не только для инженера-металлурга)! Спасибо хотя бы за обнадеживающее: "FreeBasic легко русифицировать, т.е. внедрить кириллические шрифты по умолчанию", но, думаю, что он-то, FreeBasic, может прожить и без русификации (опять же, могу ошибаться).
А вот оболочка IDE на базе FbEdit, предназначенная для "рядового пользователя", как раз и нуждается в русификации (опять же, могу ошибаться). Беда вся в том, что при обращении http://albom85.livejournal.com/ постоянно возникает тайм-аут!
Похоже, указанная Вами страница англоязычного форума "Yet another question about codepage", действительно может пролить свет, но, увы, у меня "базовый, как у многих химиков-металлургов был немецкий... Жаль, конечно, что Вы охладели к рассматриваемой проблеме! Всегда полагал, вслед за И.А.Крыловым: "Беда, коль пироги начнет печи сапожник, а сапоги тачать пирожник"... Однако, спасибо...
А вот оболочка IDE на базе FbEdit, предназначенная для "рядового пользователя", как раз и нуждается в русификации (опять же, могу ошибаться). Беда вся в том, что при обращении http://albom85.livejournal.com/ постоянно возникает тайм-аут!
Похоже, указанная Вами страница англоязычного форума "Yet another question about codepage", действительно может пролить свет, но, увы, у меня "базовый, как у многих химиков-металлургов был немецкий... Жаль, конечно, что Вы охладели к рассматриваемой проблеме! Всегда полагал, вслед за И.А.Крыловым: "Беда, коль пироги начнет печи сапожник, а сапоги тачать пирожник"... Однако, спасибо...
ruddy- Сообщения : 15
Дата регистрации : 2011-11-14
Откуда : Москва
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
А под линукс автор подобное сделать планов не имеет? FB привлёк переносимостью, а русский то оказывается и не переносится.. :-(
dvbas- Сообщения : 5
Дата регистрации : 2012-06-06
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Для подрастающего поколения стараюсь, а оно хочет, к сожалению, Windows :-)dvbas пишет:А под линукс автор подобное сделать планов не имеет? FB привлёк переносимостью, а русский то оказывается и не переносится.. :-(
Сейчас толкую про редактор IDE для компилятора FreeBasic с Шелковенко Андреем Васильевичем (С-Петербург)...
Велик и могуч русский язык!
ruddy- Сообщения : 15
Дата регистрации : 2011-11-14
Откуда : Москва
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
dvbas пишет:А под линукс автор подобное сделать планов не имеет? FB привлёк переносимостью, а русский то оказывается и не переносится.. :-(
Ничего не оказывается!
Библиотека albom_font кроссплатформенна и с помощью ее корректно отображаются русские символы. Ставите в Geany кодировку файла win1251 и запускаете этот пример:
- Код:
screen 1
#Include Once "albom_font.bi"
Print "БЛАБЛАБЛА"
Sleep
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
[quote="trew"]
Библиотека albom_font кроссплатформенна и с помощью ее корректно отображаются русские символы. Ставите в Geany кодировку файла win1251 и запускаете этот пример:
[quote]
Простите, а от какого числа упомянутая библиотека?
Библиотека albom_font кроссплатформенна и с помощью ее корректно отображаются русские символы. Ставите в Geany кодировку файла win1251 и запускаете этот пример:
[quote]
Простите, а от какого числа упомянутая библиотека?
ruddy- Сообщения : 15
Дата регистрации : 2011-11-14
Откуда : Москва
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Спасибо, Print получилось, Input ещё не проверял. Причина ошибки: писал в редакторе mc, а он сохраняет в utf-8.
albom_font.bi от14.11.2010, albom_font_1251.bi от 28.12.2010. Линукс PuppyRus130.
albom_font.bi от14.11.2010, albom_font_1251.bi от 28.12.2010. Линукс PuppyRus130.
dvbas- Сообщения : 5
Дата регистрации : 2012-06-06
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
Ага, Input по-русски в графическом режиме отсутствует, как будто вообще нет нажатий на клавиши. И с albom_font и без них.
В консольном режиме без albom_font Input даёт отклик: на каждое нажатие русской клавиши - две кракозябры на экран. После того как эти двойные кракозябры введены в строковую переменную, последующий Рrint нормально выводит соответствующий им русский текст на консоль.
Возникает вопрос: как в линуксе вводить русский текст - в графике и консоли?
Может быть в новых версиях FB можно ожидать встроенный для этих операций юникод?
В консольном режиме без albom_font Input даёт отклик: на каждое нажатие русской клавиши - две кракозябры на экран. После того как эти двойные кракозябры введены в строковую переменную, последующий Рrint нормально выводит соответствующий им русский текст на консоль.
Возникает вопрос: как в линуксе вводить русский текст - в графике и консоли?
Может быть в новых версиях FB можно ожидать встроенный для этих операций юникод?
dvbas- Сообщения : 5
Дата регистрации : 2012-06-06
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
dvbas пишет:Ага, Input по-русски в графическом режиме отсутствует, как будто вообще нет нажатий на клавиши. И с albom_font и без них.
В консольном режиме без albom_font Input даёт отклик: на каждое нажатие русской клавиши - две кракозябры на экран. После того как эти двойные кракозябры введены в строковую переменную, последующий Рrint нормально выводит соответствующий им русский текст на консоль.
Возникает вопрос: как в линуксе вводить русский текст - в графике и консоли?
Может быть в новых версиях FB можно ожидать встроенный для этих операций юникод?
Ну выводить то не сложно с помощью той же Print и albom_font, но команда input похоже имеет баг (такое впечатление что кодировка у нее перепутана до наоборот). Вообще конечно консольные проги давно не в моде у пользователей, может этим сказывается плохо проявленный интерес разработчиков по поддержке юникода в консоли.
В реале же для игр (графического режима) используют свои шрифты и свои диалоги и уж никак не Input. Для GUI нет проблем с юникодом. Остается только консоль, в которой я на сегодняшний день практически не встречаю русский язык. Хотя возможно что для обучения это необходимо...
Добавлено:
Я создал тему на оф. сайте по команде Input, не знаю уж решат или нет:
ЗДЕСЬ
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Библиотека русифицированных шрифтов (в том числе для операторов Print и Input)
На винде можно вместо Input для консоли (Screen 0) использовать такое (сохранять файл в юникоде):
В первом параметре в зависимости от формата, выводится:
%a Читает значение с плавающей точкой (только C99)
%A Аналогично коду %a (только C99)
%c Читает один символ
%d Читает десятичное целое
%i Читает целое в любом формате (десятичное, восьмеричное или шестнадцатеричное)
%e Читает число с плавающей точкой
%E Аналогично коду %e
%f Читает число с плавающей точкой
%F Аналогично коду %f (только С99)
%g Читает число с плавающей точкой
%G Аналогично коду %g
%o Читает восьмеричное число
%s Читает строку
%x Читает шестнадцатеричное число
%X Аналогично коду %x
%p Читает указатель
%n Принимает целое значение, равное количеству прочитанных до сих пор символов
%u Читает десятичное целое без знака
%[] Просматривает набор символов
%% Читает знак процента
если нужно получить строку с пробелами, то нужно использовать gets:
Вроде все отображается на русском. Но для Linux у меня эти варианты работают несколько иначе. Там не видно вводимых символов , хотя после ввода в переменной русские символы. Может что настроено не так, я с линуксом не шибко дружу.
---------------------------------------------------------
Добалено позже:
TJF на оф. сайте показал пример вывода и ввода русских символов (работает на windows и Linux):
Конечно сохраняем файл в кодировке юникода.
- Код:
#Define Unicode
#Include "crt/stdio.bi"
Dim As ZString*100 s
Print "Введите что хотите:"
scanf("%s",@S)
Print S
Sleep
В первом параметре в зависимости от формата, выводится:
%a Читает значение с плавающей точкой (только C99)
%A Аналогично коду %a (только C99)
%c Читает один символ
%d Читает десятичное целое
%i Читает целое в любом формате (десятичное, восьмеричное или шестнадцатеричное)
%e Читает число с плавающей точкой
%E Аналогично коду %e
%f Читает число с плавающей точкой
%F Аналогично коду %f (только С99)
%g Читает число с плавающей точкой
%G Аналогично коду %g
%o Читает восьмеричное число
%s Читает строку
%x Читает шестнадцатеричное число
%X Аналогично коду %x
%p Читает указатель
%n Принимает целое значение, равное количеству прочитанных до сих пор символов
%u Читает десятичное целое без знака
%[] Просматривает набор символов
%% Читает знак процента
если нужно получить строку с пробелами, то нужно использовать gets:
- Код:
#Define Unicode
#Include "crt/stdio.bi"
Dim As ZString*100 S
Print "Введите что хотите:"
gets(@S)
Print S
Sleep
Вроде все отображается на русском. Но для Linux у меня эти варианты работают несколько иначе. Там не видно вводимых символов , хотя после ввода в переменной русские символы. Может что настроено не так, я с линуксом не шибко дружу.
---------------------------------------------------------
Добалено позже:
TJF на оф. сайте показал пример вывода и ввода русских символов (работает на windows и Linux):
- Код:
#Define Unicode
#INCLUDE "crt/stdio.bi"
DIM AS ZSTRING*100 S
DIM AS UBYTE c
VAR i = 0
print "введите строку"
WHILE (c <> ASC(!"\n"))
c = getchar()
putchar(c)
S[i] = c
i += 1 : IF i > 98 THEN EXIT WHILE
WEND : S[i] = 0
print "Вы ввели " ;S
sleep
Конечно сохраняем файл в кодировке юникода.
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Права доступа к этому форуму:
Вы не можете отвечать на сообщения