Не печатает по русски!
+12
valdimir
vbman
Freebasic_ru_admin
Gena
tux
DoReMi
Рамуд
Eric-S
ShenZN
ZERNOEd
justar
DEPOzit
Участников: 16
Страница 2 из 3
Страница 2 из 3 • 1, 2, 3
Re: Не печатает по русски!
Это все скрины, кроме нулевого
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Не печатает по русски!
С wstring действительно не проходит. А со string и zstring * 20 работает.Eric-S пишет:А с cp866 у меня номер не прошел!
PS: Пробовал тебе в ответ по мылу сбросить мой исходник и скомпилированную прогу, но почему то письмо не прошло...
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Не печатает по русски!
Есть же FBIDE и FBedit - зачем ещё что-то пользовать? Кстати, вот и мысль о дальнейшем развитии - добавить в FBedit поддержку юникода в редактореDoReMi пишет:Скажете, вордом... SciTE или другой какой редактор надо.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Не печатает по русски!
Спросил на главном форуме
http://www.freebasic.net/forum/viewtopic.php?p=108751#108751
Суть сводиться к тому, что в консоль можно печатать юникод.
А в графическом режиме нельзя.
Вы были правы про шрифты.
http://www.freebasic.net/forum/viewtopic.php?p=108751#108751
Суть сводиться к тому, что в консоль можно печатать юникод.
А в графическом режиме нельзя.
Вы были правы про шрифты.
Re: Не печатает по русски!
А проблема-то, оказывается, стара как мир Я тут потихоньку для оn-line book пишу главу про графику, и внимательно вчитался в книгу Д. Грайса Графические средства персонального компьютера. И хотя она написана ещё во времена DOS 2.0 и BASICA, эта проблема в ней упомянута и... решена просто и изящно Суть проблемы в том, что в консоли все Бейсики для полатформы IBM PC выводят текст через ДОС/Виндовс - а для них то есть консольные руссификаторы, тогда как в графичиеских режимах вывод текстов ведётся через БИОС, в знакогенераторе которого русских символов нет. Поэтому какого бы типа строка небыла и в какой кодировке не набиралась бы - результат будет одинаково плачевным. Грайс предлагает такое решение (код привожу уже адаптированным под FB):
PS: пока не проверил как это работает в FB так как руки не доходят нарисовать знакогенератор... Если кто проверит, плиз, отпишитесь здесь.
- Код:
' Меняем вектора знакогенератора для BIOS
' В оригинале здесь был ещё DEF SEG = 0
' как я понимаю, в нулевом сегменте адреса менять не надо
' поэтому дальше идут оригинальные...
POKE &h7F, &h17
POKE &h7E, &h00
POKE &h7D, &h00
POKE &h7C, &h00
' Дальше в оригинале DEF SEG = &h1700
' это начало сегмента, куда от нулевого смещения
' BLOAD загружает знакогенератор.
' Тут я плаваю, поэтому поправьте как правильно
' задать адрес загрузки...
DIM key_buffer AS BYTE PTR = &h1700
DIM result AS INTEGER
result = BLOAD ("russian.key", key_buffer)
IF result <> 0 THEN ERROR
PS: пока не проверил как это работает в FB так как руки не доходят нарисовать знакогенератор... Если кто проверит, плиз, отпишитесь здесь.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Не печатает по русски!
Интересно, интересно... Да для проверки мона взять ваще какуюнить от балды бмп-шку, просто хотябы посмотреть на результат, но мне кажется винда не даст писать в произвольный адрес напрямую, и интересно как это скажется на остальные программы.
К сожалению проверить тоже пока нет водможности
К сожалению проверить тоже пока нет водможности
Re: Не печатает по русски!
Ну и получишь другую абракодабруtux пишет:Интересно, интересно... Да для проверки мона взять ваще какуюнить от балды бмп-шку
Позволяет, если это не адрес, занятый самой Виндой или программой со статусом выше твоей. Но по идее область до 100Н не должна ни чем заниматься - значит писать в неё вполне законно...мне кажется винда не даст писать в произвольный адрес напрямую
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Не печатает по русски!
ну и пусть, главное посмотреть будет ли она похожа на нечто нарисованное тобойНу и получишь другую абракодабру Wink
Re: Не печатает по русски!
Я тоже решал эту проблему.
В виндоусе 98 русский текст есть - так вот там я запустил эту прогу и отсканировал шрифт(надеюсь понятно, как из файла буквы доставать) Так же я сделал прогу, которая читает виндовский блокнотный текст и отображает его в ACSII (не помню где тот код, при желание могу переделать - там просто)
screen 13
open "fnt13.fnt" for random as #1 len = 128
for sim = 1 to 255
locate 1,1:print chr$(sim)
text$=""
for x = 0 to 8
for y = 0 to 8
text$=text$+chr$(point(x,y))
next
next
put #1, text$
next
close '(с) =)
В виндоусе 98 русский текст есть - так вот там я запустил эту прогу и отсканировал шрифт(надеюсь понятно, как из файла буквы доставать) Так же я сделал прогу, которая читает виндовский блокнотный текст и отображает его в ACSII (не помню где тот код, при желание могу переделать - там просто)
screen 13
open "fnt13.fnt" for random as #1 len = 128
for sim = 1 to 255
locate 1,1:print chr$(sim)
text$=""
for x = 0 to 8
for y = 0 to 8
text$=text$+chr$(point(x,y))
next
next
put #1, text$
next
close '(с) =)
Gena- Сообщения : 182
Дата регистрации : 2008-11-05
Возраст : 30
Откуда : Москва
Re: Не печатает по русски!
Что-то не получается ничего. С горя склипал прогу для русского текста. Кривовато, но смысл , я думаю, понятен. русские буквы.
Re: Не печатает по русски!
Freebasic_ru_admin пишет:Что-то не получается ничего. С горя склипал прогу для русского текста. Кривовато, но смысл , я думаю, понятен. русские буквы.
Есть один плюс - скорость. Но я больше склоняюсь к созданию русских букв через операторы bload и Put - гимора меньше, да и покрасивше будет...
Кстати урлы твоего сайта с php помоему это обычный html))))
Re: Не печатает по русски!
Только что в консоли windows XP вбил
graftabl /?
И получил очень интересный ответ
graftabl /?
И получил очень интересный ответ
C:\>graftabl /?
Выбор кодовой страницы для отображения символов национальных алфавитов
в графическом режиме.
GRAFTABL [xxx]
GRAFTABL /STATUS
xxx Номер кодовой страницы.
/STATUS Вывод номера текущей кодовой страницы.
Re: Не печатает по русски!
Не в ту степь. Команды консоли распространяются только на то консольное окно, в котором они исполняются. А FB по команде screen открывает вообще не консоль. Для проверки (если я правильно понял твою идею) написал:
- Код:
screen 1
shell "gtaftable cp866"
print "Здравствуй, мир"
sleep
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Не печатает по русски!
https://freebasic.forum2x2.ru/forum-f5/tema-t176-15.htm#1591
Тут пример как можно вывести в консоль кириллицу... Работает и в полноэкранном режиме и в окне...
Тут пример как можно вывести в консоль кириллицу... Работает и в полноэкранном режиме и в окне...
vbman- Сообщения : 52
Дата регистрации : 2008-11-19
Возраст : 42
Откуда : Украина, Кировоград
Re: Не печатает по русски!
Тоже сталкивался с такой проблемой, для ее решения написал простую функцию, через которую и вывожу текст в консоль:
- Код:
Function win2dos(ByVal stroka As String) As String ' возвращает строку в кодировке DOS
For i As Integer = 0 To Len(stroka)-1
Select Case stroka[i]
Case 192 To 239
stroka[i]=stroka[i]-64
Case 240 To 255
stroka[i]=stroka[i]-16
End Select
Next:Return stroka
End Function
Print win2dos ("Морковка")
Sleep
Последний раз редактировалось: valdimir (Вт Фев 19, 2013 11:13 pm), всего редактировалось 4 раз(а)
valdimir- Сообщения : 44
Дата регистрации : 2008-10-11
Откуда : Калининградская обл.
Re: Не печатает по русски!
Доброго времени суток. Вот у меня не выводит в файл на кириллице, в консоле нормально, печать на принтер тоже, а вот в файл никак, вместо каждого кириллического символа знак вопроса: "???????? ?? ?????." - вот-так. что-бы это значило, и как с этим бороться, подскажите.
Анатолий- Сообщения : 4
Дата регистрации : 2010-11-17
Возраст : 49
Откуда : Енакиево, Донбасс
Re: Не печатает по русски!
Анатолий пишет:Доброго времени суток. Вот у меня не выводит в файл на кириллице, в консоле нормально, печать на принтер тоже, а вот в файл никак, вместо каждого кириллического символа знак вопроса: "???????? ?? ?????." - вот-так. что-бы это значило, и как с этим бороться, подскажите.
Здравствуйте! Вы бы хоть код выложили(или часть кода). Не факт конечно, что помощь будет 100%, но уже все же попроще будет... А так, как на кофейной гуще гадать.
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Не печатает по русски!
Виноват. Моя оплошность. Вот он:trew пишет:
Здравствуйте! Вы бы хоть код выложили(или часть кода). Не факт конечно, что помощь будет 100%, но уже все же попроще будет... А так, как на кофейной гуще гадать.
- Код:
Cls
Print "Привет Мир."
# define unicode
#Include "windows.bi"
MessageBox NULL, "Привет Мир.", "ПРИВЕТСТВИЕ", MB_ICONASTERISK
Open "test.txt" For Output As #1
Print #1, "Привет Мир."
Print #1, "hello world."
Close #1
?????? ???.
hello world.
А в консоле и окне сообщений нормально.
З.Ы. Сохраняю в юникоде.
Анатолий- Сообщения : 4
Дата регистрации : 2010-11-17
Возраст : 49
Откуда : Енакиево, Донбасс
Re: Не печатает по русски!
хе, а фря то считает, что это в аскии, поэтому и переводит превед, в аскии сначала, потом пишет в файл, а т.к. в аски нет символов для кириллицы, то и заменяются они вопросом
Cls
Print "Привет Мир."
# define unicode
#Include "windows.bi"
MessageBox NULL, "Привет Мир.", "ПРИВЕТСТВИЕ", MB_ICONASTERISK
Open "test.txt" For Output Encoding "utf18" as # 1
Print #1, "Привет Мир."
Print #1, "hello world."
Close #1
Cls
Print "Привет Мир."
# define unicode
#Include "windows.bi"
MessageBox NULL, "Привет Мир.", "ПРИВЕТСТВИЕ", MB_ICONASTERISK
Open "test.txt" For Output Encoding "utf18" as # 1
Print #1, "Привет Мир."
Print #1, "hello world."
Close #1
Re: Не печатает по русски!
Спасибо, теперь все получается. Понял в чем дело.
Анатолий- Сообщения : 4
Дата регистрации : 2010-11-17
Возраст : 49
Откуда : Енакиево, Донбасс
Re: Не печатает по русски!
Анатолий пишет:Спасибо, теперь все получается. Понял в чем дело.
а вот у меня пока ни чего не получается.
По ходу у всех в консоли высвечиваются русские буквы кроме как у меня.
Программа из предыдущего примера также выдает абракадабру и в консольном окне и в диалоговом.
Народ, помогите. Мне детишек в школе программировать надо учить.
Установлена FBIde 0.4.6
В тексте программы с русским все нормально.
Собственно вопрос:
как из программы типа:
cls
print "Привет"
sleep
- получить в консоли слово Привет, а не абракадабру?
ap- Сообщения : 2
Дата регистрации : 2011-01-17
Re: Не печатает по русски!
ну, к сожалению, для этого нужно сначала сохранить её в уникоде, потом она и будет показывать "привет". Для всех прог, в тексте которых есть символы кириллицы или спецсимволы нужно сохранять в уникоде, вот мой совет.
Насчет кракозябр... у меня этот же пример выдал "яЁштхЄ", я посмотрел - это кодировка 866 OEM, русская. Во всех аски-подобных кодировках латиница размещена ниже 127 места, и имеют постоянные номера. Значит, если проги не имеют спецсимволов, то будут парситься нормально пчти в любой кодировке, и выдавать верных результат, иначе придется в уникоде. как-то так вродь.
в папке компилятора есть папка Examples - в ней примеры и к мануалам, и библиотекам, и к использованию уникода. сам особо не проверял, но должны быть работающими. вот на них и учить. Кстати, просьба у меня - учите, пожалуйста, ещё оформлению и стилю кода, так как у меня в школе особо не рассказывали, а приучать к порядку желательно сразу, имхо.
Насчет кракозябр... у меня этот же пример выдал "яЁштхЄ", я посмотрел - это кодировка 866 OEM, русская. Во всех аски-подобных кодировках латиница размещена ниже 127 места, и имеют постоянные номера. Значит, если проги не имеют спецсимволов, то будут парситься нормально пчти в любой кодировке, и выдавать верных результат, иначе придется в уникоде. как-то так вродь.
это из моего что ли? ээ у мя там небольшая такая ошибка вместо "utf18" нужно "utf8", описался.
Программа из предыдущего примера также выдает абракадабру и в консольном окне и в диалоговом.
в папке компилятора есть папка Examples - в ней примеры и к мануалам, и библиотекам, и к использованию уникода. сам особо не проверял, но должны быть работающими. вот на них и учить. Кстати, просьба у меня - учите, пожалуйста, ещё оформлению и стилю кода, так как у меня в школе особо не рассказывали, а приучать к порядку желательно сразу, имхо.
Страница 2 из 3 • 1, 2, 3
Страница 2 из 3
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|