русифицировать программу

Тема в разделе "WASM.RESEARCH", создана пользователем aspirant, 28 ноя 2006.

  1. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    В принципе все операции сборки-разборки можно руками сделать в hex-редакторе: вырезай куски заданной длины по заданному смещению, обзывай как надо... Потом редактируешь руками то, что нужно и все склеиваеши обычной командой copy /b. Тут только надо все аккуратно делать и потом прописать в trailer изменившиеся поля.
    То что файлы шрифтов имеют такие расширения, еще ни о чем не говорит. Я посмотрю, то что прикреплено.
     
  2. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    Да, все так и делал.
     
  3. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Шрифты растровые. Первые 2 слова в файлах - ширина и высота фонта в пикселах. Поскольку всюду ширина = 8, значит кодировка идет байтами. Я тебе примерчик высылаю, с остальным наверное сам разберешься. Токмо пока непонятно, почему длина файла в 2 раза превышает расчетную.

    File ewbd.fnt from offset 1F8

    -X---X-- 44
    -X---X-- 44
    -XXXXX-- 7C
    --X-X--- 28
    ---X---- 10

    -XXXX--- 78
    -X---X-- 44
    -XXXX--- 78
    -X---X-- 44
    -XXXX--- 78

    --XXXX-- 3C
    -X------ 40
    -X------ 40
    -X------ 40
    --XXXX-- 3C

    -XXXX--- 78
    -X---X-- 44
    -X---X-- 44
    -X---X-- 44
    -XXXX--- 78

    -XXXXX-- 7C
    -X------ 40
    -XXXX--- 78
    -X------ 40
    -XXXXX-- 7C

    -XXXXX-- 7C
    -X------ 40
    -X------ 40
    -XXX---- 70
    -X------ 40
     
  4. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Чтобы определить шрифт, используемый на оборудовании, попробуй подредактировать по-очереди каждый из трех файлов (подредактировать можно грубо, например, забить несколько подряд идущих байтов 0xFF, чтобы вместо символов получились прямоугольнички).
     
  5. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    Уважаемый, crypto, я пришел к следующим результатам: шрифты *.fnt, которые содержаться в WEWB.MSG в программе вообще не используются. На оборудовании надписи сделаны шрифтом Arial, это абсолютно точно. Проблема сейчас такая: русские буквы отображаются некорректно, я импортировал шрифт Arial в программу Raster Font Editor (см. выше), она показала все буквы и их hex-значения, содержащиеся в этом файле шрифта построчно (1 строка – сплошные квадратики, 2 строка – цифры и спец. символы, 3 строка – заглавные буквы английского алфавита, 4 строка – прописные буквы английского алфавита, 5 и 6 строки – непонятные символы, 7 строка – заглавные буквы русского алфавита, 8 строка – прописные буквы русского алфавита). Я сравнил hex-значения русских букв, которые я ввожу в качестве надписей на оборудовании, с теми, что выдал Raster Font Editor для шрифта Arial. Оказалось, что они как раз точно попадают на 7 и 8 строки (русский алфавит) Arial’а, но на экране отображаются символы из 5 и 6 строк (как раз тот «птичий язык»), причем порядковые номера символов в этих строках абсолютно симметричны (т.е., например, для буквы «Ч» отображается непонятный символ под тем же порядковым номером в строке 5, что и символ «Ч» в своей строке). Если вставлять hex-значения из 5 и 6 строк симметричные 7 и 8 строкам, то в программе отображаются русские буквы (проверил). Все бы хорошо, но начиная с русской буквы «р» прописные буквы не отображаются (отображаются опять непонятные символы), но если писать все заглавными – все отображается без проблем. Но писать все заглавными не хочется, хотелось бы сделать все по человечески :)
    Может кто-нибудь посоветует, что делать в этой ситуации. Что за шрифт в строках 5 и 6 (может быть это UNICODE?) и почему после буквы «р» прописные русские буквы не отображаются.
    P.S. кодовую страницу я уже поменял на 1251, но на текст на оборудовании это не повлияло (хотя здесь тоже Arial).
    Помогите, пожалуйста, если еще не совсем вас утомил :) Бьюсь уже два дня и уверен, что осталось совсем чуть-чуть.. :)
     
  6. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    А каким образом был получен этот результат? Можно поподробнее?

    Помогу, если смогу. Или кто-то еще присоединится...
     
  7. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    Все как вы посоветовали, я заполнил эти шрифты "FF" и абсолютно это никак не отразилось, плюс к ним заполнял еще и EWBFNT.FON (и удалял его), который лежит в папке с программой. А когда вставляю hex-коды символов из шрифта Arial - все отлично отображает (см. пред. сообщ.), но только заглавными буквами и прописывать надо из 5 и 6 строк, а не из тех, где реально русские символы.
    Сегодня посоветовали приписать "204" в ключах "FontSubstitutes" и "FontMapper", но это тоже не помогло. Версию, что в 5 и 6 строках располагаются символы UNICODE тоже пришлось отбросить - узнал, что символ в UNICODE кодируется двумя байтами.
    Никак не пойму, почему же он берет русские символы не из тех строк и после символа "р" отображаются непонятные знаки.
     
  8. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    Я нашел следующие шрифты (при инициализации)
    InstSpinFont
    StdFont
    EwbFont
    InstFont
    LabelFont
    ModelFont
    MacroFont
    MeterFont

    MacroFont
    MeterFont
    Явно Arial (из кода видно).

    Как по-твоему, какой из этих шрифтов искомый?
     
  9. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Странное дело, запустил я программу, стал размещать на ней элементы. Так у меня на этих елементах явно тот самый шрифт, который я тебе в качестве примера посылал. (надписи типа GND, VCC, 1A, 1Y и др. - правильно?), а никако
     
  10. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Странное дело, запустил я программу, стал размещать элементы. Так у меня на этих элементах явно тот самый шрифт, который я тебе в качестве примера посылал. (Надписи типа GND, VCC, 1A, 1Y и др. - правильно?), а никакой не Arial.
     
  11. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    По логике, я бы назвал ModelFont. Но что это за шрифт? В качестве примера вы присылали ewbd.fnt, но там не было русского (по-моему я внимательно посмотрел), была только латиница (8x8 бит). Неужели вы пишете русскими буквами на оборудовании шрифтом ewbd.fnt? Только что еще раз просмотрел эти 3 шрифта, которые содержатся в ресурсах - ни в одном не нашел очертаний русских символов.
     
  12. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    Может я непонятно высказался, но шрифт на микросхемах (надписи GND, 1A, 1Y) уж явно не в Arial. Или ты имел в виду другие элементы?
    А лучше выложи экранчик и отметь нужное!
     
  13. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    Я попробую вечером проверить (как тебе советовал - путем правки шрифта), используется ли файл из ресурсов...
     
  14. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    Уважаемый, crypto.
    Насколько я понял, на форум нельзя публиковать сообщения с вложениями больше 50Кб, поэтому вот мое сообщение со снимками экрана: http://slil.ru/23520662.
     
  15. krokus

    krokus New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2005
    Сообщения:
    11
    Адрес:
    Ukraine
    aspirant
    Надо русский текст набирать не в 1251 кодировке, а в ДОС кодировке
     
  16. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    Так с ходу не скажу, поскольку похоже они какую-то внутреннюю перекодировку используют (хотя может я неправ).
    Предлагаю тупой метод: забиваешь в строки все символы от 0х80 до 0хFF и смотришь, что получилось - должна получиться табличка соответствия.

    И я все-таки не те элементы рассматривал.
     
  17. krokus

    krokus New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2005
    Сообщения:
    11
    Адрес:
    Ukraine
    crypto
    Там 866 CP
     
  18. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    Огромное спасибо за дельные советы и конкретную помощь, уважаемый crypto!
    А также спасибо всем, кого не затруднило ответить на мои сообщения.

    Проблема решена, тема закрыта.
     
  19. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    aspirant
    Я так понимаю, и krokus тоже внес свою лепту. Приятно было помочь умному человеку. Обращайся, если что...
     
  20. aspirant

    aspirant New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2006
    Сообщения:
    22
    crypto
    Да, действительно, krokus внес свою лепту. Те строки, которые я глупо называл "строки 5, 6, 7 и 8", называются "Кодовая страница 866", за это спасибо krokus'y. В приложении картинка, которая ставит в соответствие символу hex-код по правилам как раз этой CP866 и на ней наглядно видно, что коды символов идут не подряд, а обрываются как раз на прописной русской букве "р", тогда как я, не зная про этот разрыв, писал так, будто все идет последовательно. Сейчас я учел это при переводе, прибавил величину разрыва, и русские буквы стали отображаться корректно.
    Еще раз, огромное спасибо, crypto и все остальные!