Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Ubuntu 12.04 + Wine 1.3.28 + xHarbour (терминалка на cp866 кодировке)  (Прочитано 2186 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн АндрейВ

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Всем здравствуйте.
Потребовалось перенести свою задачу на xHarbour'e (продолжение Clipper) Win32-терминалка в кодировке cp866
под Ubuntu 12.04 + Wine. Программу с трудом, но запустил, правда на экране одни (много) кракозябов...  ;D
Я новичок еще, подскажите пожалуйста как добиться работы программы ?

Кодировку не могу исправить, т.к. базы тоже в 866 кодировке.
Тестовый пример - терминалки на cp866 большой, сюда не входит.
Выложу сегодня же на другое место...

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
cat xHarbour-gtwvt-866.zip | hex | head -1
0x00000000: d5 49 f9 14 ff 28 fd de - cd 6b 33 6f df 11 8d b7 .I...(��.k3o...�
ошибка зип у тебя.
Wars ~.o

Оффлайн АндрейВ

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
cat xHarbour-gtwvt-866.zip | hex | head -1
0x00000000: d5 49 f9 14 ff 28 fd de - cd 6b 33 6f df 11 8d b7 .I...(��.k3o...�
ошибка зип у тебя.

Да это архив не поместился в ОДИН файл. Переложил прогу сюда:
http://files.mail.ru/ZXZVB9

Заранее спасибо за помощь...

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Открыл смотреть там exe зачем?
Wars ~.o

Оффлайн АндрейВ

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Открыл смотреть там exe зачем?
Так я прогу свою Win32 пытаюсь под WINE запустить.
Она запускается, и на экране кракозябы !

Оффлайн _angus_

  • Активист
  • *
  • Сообщений: 305
  • data recovery tech
    • Просмотр профиля
Я, конечно, уже сто лет как не клипперист и практически с харбором столкнуться не успел, но похоже на то, что gtwvt создаёт не окно консоли как таковое, а окно Win32, в котором опять же по моим скромным познаниям кодировка в вайне может быть только 1251 (если нет, то дальнейшее можно решить гораздо проще). А нет возможности перекомпилить проги с библиотекой gtwin вместо gtwvt? В мануале вот пишут:
 By default, Harbour will select the gtwin.lib. All GT commands will
   then be executed through the functions in the gtwin.lib, which outputs
   them to a WinXP console.
То есть мы получаем в нашем же окне терминала ввод/вывод проги и при этом можем изменить кодировку как угодно, к примеру, через Терминал-Установить кодировку символов-Добавить или удалить-ищем cp866-вуаля. Ну или добавить к имеющимся локалям IBM866 и потом запускать как LC_ALL=ru_RU.IBM866 wineconsole <appname> :)

Оффлайн RedBeard

  • Активист
  • *
  • Сообщений: 740
    • Просмотр профиля
Попробуйте в настройках Вайна переключить эмуляцию на Windows 3.1, там вроде есть. Дело в том, что CP 866 - это кодовая страница MS-DOS, а не вендовая (которая 1251). Если сразу не воткнётся, то можно поиграть с настройкой кодировок окна терминала, как это описал _angus_. Немного поясню: Венды, вплоть до 3.11, работали на платформе MS-DOS, и полностью поддерживали её кодовые страницы. Начиная же с NT 3.1 (в 1993-м), Венды стали собственно ОС, и с кодировками там возникли некоторые проблемы.
« Последнее редактирование: 09 Сентября 2012, 05:33:30 от RedBeard »

Оффлайн АндрейВ

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
А нет возможности перекомпилить проги с библиотекой gtwin вместо gtwvt?

Да возможность то есть, но хотелось бы использовать гибридный GTWVT-терминал ! Там графику выводить можно.

GTWIN для 866 прошел успешно. Но не хочется сопровождать ДВА проекта ! И так уже под Линукс делаю отдельную сборку.


Пользователь решил продолжить мысль 09 Октября 2012, 18:11:15:
Попробуйте в настройках Вайна переключить эмуляцию на Windows 3.1, там вроде есть.

Не нашел как это сделать. Подскажите пожалуйста.

Пользователь решил продолжить мысль 09 Октября 2012, 18:31:55:
терминал GTWIN для 866 странице - нормально работает, т.е. кодировка такая же как в Windowsх.
Единственно что не получается задать размер экрана окна задачи 30х90 ? Где это задается ?

Нашел для терминала GTWVT оператор для переадресации вывода: hb_SetTermCP( 'RUKOI8', 'RU866', .T. )

Только он что-то все равно не работает.
Сделал 3 программки.
Кто может посмотрите как можно их настроить для WINE под 866-кодовую страницу ?
Буду очень признателен. Спасибо.
Ссылка примеров http://files.mail.ru/NED09Y 
« Последнее редактирование: 09 Октября 2012, 18:31:55 от АндрейВ »

 

Страница сгенерирована за 0.051 секунд. Запросов: 22.