![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Terminator |
|
|||
|
Unregistered |
Решил сделать консольное приложение, но вот проблема - русские буквы при выполнении превращаются в абракадабру. Тут понятно в чем дело - кодировка Виндовс превращается в какую-то другую (ДОС видимо). Но как заставить превращаться правильно или вообще не превращаться. Есть способ перекодировать исходный текст в Лексиконе или в другом текстовом редакторе, но это ведь не выход.
Это относится ик TMT Паскалю, и к Borland Pascal for windows. Мне бы хоть один из них русскому языку научить. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Гм, спасибо за хорошую идею. У меня тоже была подобная проблема. Теперь буду перекодировать текст в редакторе, а в исходнике просто комментировать что написано... А кто знает, а может быть в консольных прогах вовсе и нет поддержки национальных языков? Я имею ввиду нет таких API, которые могли бы заниматься этим. Наверняка Cmd создана подобноро рода способом...
|
|||
|
||||
| Dimich |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 25.8.2004 Где: Брянск Репутация: 1 Всего: 7 |
По моему нет в консоле никакой поддержки национальных языков (если я не прав - буду рад). Кодировка там - DOS 866, в виндовом редакторе у тебя получается кодировка Win 1251
Посему вижу 2 выхода: 1. Писать прогу в редакторе, поддерживающем кодировку DOS 2. Вывод осуществлять примерно так:
Этот способ имеет ряд недостатков, т.к. необоснованно растет размер и сложность программы. Поэтому способ 1 имеет преимущество. Или можно перекодировать исходник перед компиляцией. А иметь в программе:
--------------------
Не работает - исправь, работает - не трогай!!! |
||||
|
|||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
D7+Win2000 - consol application никаких проблем.
Или я чего то не допонял? |
|||
|
||||
| Sergey89 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 14.9.2004 Репутация: нет Всего: нет |
Так как текст программы набирается в Windows,
а работает программа в Dos, то возникают проблемы при выводе русских букв, вместо которых на экране появляется абра-кадабра. Это объясняется тем, что русские буквы в Windows и в DOS кодируются разными числами. Поэтому в программе, работающей в DOS, нужно изменить кодировку русских букв. В Windows русские буквы кодируются числами от 192 до 255, в DOS - от 128 до 175 (А..Яа..п) и от 224 239 (р..я).
Это сообщение отредактировал(а) Sergey89 - 29.10.2004, 13:45 --------------------
mlib.com.ru |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Наиболее толковый вариант: запихать в программу текстовый ресурс, а в программе читать нужную строчку из ресурса по номеру строки и кидать на экран. Можно не в ресурс, а в отдельный файл - получится поддержка для нескольких языков: хочешь из этого читай, а хошь из другого... Это универсальный способ.
А вообще просто выводить не врайтлном, а написать свою функцию, которая будет автоматом переворачивать строчки. |
|||
|
||||
| Terminator |
|
|||
|
Unregistered |
Написать свою функцию - лучший вариант на мой взгляд. Да в принципе и писать уже не надо, Sergey89 предложил самое то. И спасибо ему за это.
Хочу заметить, проблема эта глобальная. Некоторые мои сокурсники с горя вообще на английский перешли... не очень правильно на мой взгляд. |
|||
|
||||
| Sergey89 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 14.9.2004 Репутация: нет Всего: нет |
На основе функции создай модуль и раздай его своим однокурсникам
--------------------
mlib.com.ru |
|||
|
||||
| Elfin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 28.10.2004 Репутация: нет Всего: нет |
почему не выход? я, например в far манагере встроенным редактором в дос кодировке свой проджект изменял... |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
uses Windows;
|
|||
|
||||
| Elfin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 28.10.2004 Репутация: нет Всего: нет |
не... так муторно, да еще и лишнюю переменную надо использовать,
|
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Маленькая поправка: программа работает не в dos, а в эмуляции(или как там ещё) dos'а. Уж ваша то программа точно в dos работать не будет.
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |