Старый 16.06.2008, 21:21   #1   
WTF?
 
Аватар для I.C.E.
 
Сообщений: 532
Регистрация: 07.06.2007
Возраст: 37

I.C.E. вне форума Не в сети
Русификация консольных приложений на DELPHI

Как сделать так что бы в консольных прогах отображался правильно русский язык?
 
Старый 16.06.2008, 21:58   #2   
Форумец
 
Сообщений: 26
Регистрация: 04.06.2008
Возраст: 37

Torpedo вне форума Не в сети
Точно не скажу, но для перевода символов из кодировки консоли и обратно служат функции CharToOem и OemToChar, модуль winuser
 
Старый 16.06.2008, 22:15   #3   
WTF?
 
Аватар для I.C.E.
 
Сообщений: 532
Регистрация: 07.06.2007
Возраст: 37

I.C.E. вне форума Не в сети
Цитата:
Сообщение от Torpedo Посмотреть сообщение
Точно не скажу
можно кусок исходника? так не очень понятно(
 
Старый 16.06.2008, 22:42   #4   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
I.C.E., меняй локаль консоли, а метод Torpedo извращенский. Подробности в мсдн.
 
Старый 17.06.2008, 08:39   #5   
WTF?
 
Аватар для I.C.E.
 
Сообщений: 532
Регистрация: 07.06.2007
Возраст: 37

I.C.E. вне форума Не в сети
Part!zan, как ее поменять то?
 
Старый 17.06.2008, 19:40   #6   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
I.C.E., SetConsoleOutputCP
 
Старый 18.06.2008, 09:05   #7   
WTF?
 
Аватар для I.C.E.
 
Сообщений: 532
Регистрация: 07.06.2007
Возраст: 37

I.C.E. вне форума Не в сети
Вот что он мне пишет:
Миниатюры
Нажмите на изображение для увеличения
Название: ERROR.JPG
Просмотров: 55
Размер:	101.6 Кб
ID:	286703  
 
Старый 18.06.2008, 15:07   #8   
Форумец
 
Сообщений: 130
Регистрация: 02.09.2007
Возраст: 38

p51x вне форума Не в сети
А посмотреть, что она в модуле Windows подключить его?
 
Старый 18.06.2008, 22:11   #9   
WTF?
 
Аватар для I.C.E.
 
Сообщений: 532
Регистрация: 07.06.2007
Возраст: 37

I.C.E. вне форума Не в сети
Вот что получается...
Не работает...
Выложите пожалуйста подобный исходник где раотает все...
Миниатюры
Нажмите на изображение для увеличения
Название: Скрин2.JPG
Просмотров: 32
Размер:	94.6 Кб
ID:	287075  
 
Старый 18.06.2008, 23:21   #10   
IGBT
 
Аватар для Pengvin
 
Сообщений: 534
Регистрация: 09.10.2005

Pengvin вне форума Не в сети
Ну писец. Я не знаю как сейчас это делается, а в свое время по большинству вопросов я консультировался с оффлайн версией http://delphiworld.narod.ru/ а не бежал на форум постить свой вопрос. Там есть статья, которая так и называется Русификация консольных приложений в Delphi в разделе ОС и Железо. И я думаю на гугле еще никого не банили. Выкладывать исходиник не буду из соображений той же самой лени, которая свойственна всем людям.
Миниатюры
Нажмите на изображение для увеличения
Название: уятор.JPG
Просмотров: 42
Размер:	191.8 Кб
ID:	287098  
 
Старый 18.06.2008, 23:39   #11   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
Pengvin, да тут на 90% тем с вопросами можно найти ответ в гугле... Но людям кажется проще неизветно сколько ждать ответ на форуме, чем полчаса погуглить.
 
Старый 19.06.2008, 00:03   #12   
IGBT
 
Аватар для Pengvin
 
Сообщений: 534
Регистрация: 09.10.2005

Pengvin вне форума Не в сети
Part!zan, ды это элементарная лень и возможно немного жадности. Траффик с форума для многих сетей бесплатный. Написал свой вопрос и идешь своими делами заниматься. А кто-то в это время допустим потратит минут 10-20 своего времени и пару десятков мб трафика, найдет и ответит. С одной стороны долго ждать, с другой простота реализации и минимальные затраты личной энергии и времени.
 
Старый 19.06.2008, 01:30   #13   
o_0
 
Сообщений: 11
Регистрация: 30.01.2007

Nebel вне форума Не в сети
Проблемо в том что в делфийском компиляторе используется Windows-1251, а запущенное приложение использует кодовую страницу Dos.
Мона решить проблемку так:
делаем функцию

function Rus (s: string): string;
var
i: integer;
begin
for i:=1 to length(s) do
case s[i] of
'А'..'п' : s[i] := Chr(Ord(s[i]) - 64);
'р'..'я' : s[i] := Chr(Ord(s[i]) - 16);
end;
Rus := s;
end;

Затем используем, например так:
...
writeln(Rus('привед'));
...
 
Старый 19.06.2008, 13:44   #14   
WTF?
 
Аватар для I.C.E.
 
Сообщений: 532
Регистрация: 07.06.2007
Возраст: 37

I.C.E. вне форума Не в сети
Nebel, ну эт все кривые способы... Знаю что есть на прямую как то... Только как хз вобще((

Pengvin, можешь выложить модуль который у тебя на скрине? "enconsole.pas"
 
Старый 19.06.2008, 21:41   #15   
Out There
 
Аватар для Part!zan
 
Сообщений: 5,910
Регистрация: 13.12.2004
Возраст: 47

Part!zan вне форума Не в сети
Цитата:
Сообщение от Pengvin Посмотреть сообщение
пару десятков мб
Эт ты загнул... Пару мб еще можно наскрести, да и то, в особо запущенных случаях.
 
Старый 22.06.2008, 15:13   #16   
Форумец
 
Аватар для Constantine
 
Сообщений: 18
Регистрация: 05.12.2006
Возраст: 38

Constantine вне форума Не в сети
SetConsoleOutputCP и кажется SetConsoleCP
Правда, помню что на моем компе все равно не работало. Подозреваю, что виноват был PuntoSwitcher.
А насчет "кривых" методов ты не прав. На безрыбье и рак рыба, так хотя бы работает.
А вообще, чем тебя английский-то не устраивает?))))
 
Поиск в теме: 


Опции темы

Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind