powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вывод русского текста в консольном приложении
25 сообщений из 51, страница 1 из 3
Вывод русского текста в консольном приложении
    #36100667
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я малость потерялся. Если выводить в лоб, через обычный writeln то выводятся кракозябры. Там какая кодировка-то нужна? ДОСовская чтоли?!? Какие-то "преданья старины глубокой" прямо...
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100673
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OEM

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100792
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kotъ-Begemotъ!
You wrote on Tue, 21 Jul 09 10:19:55 GMT:

Kotъ-Begemotъ KB> Что-то я малость потерялся. Если выводить в лоб,
KB> через обычный writeln то выводятся кракозябры.
KB> Там какая кодировка-то нужна? ДОСовская чтоли?!?любая.
по дефолту ОЕМ.
выставь нужную тебе.
SetConsoleOutputCP()

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100855
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийлюбая.
по дефолту ОЕМ.
выставь нужную тебе.
SetConsoleOutputCP()


То есть это не затронет настроек системы? Просто для вывода в консоль ИЗ МОЕГО приложения будет использована нужная СР?
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100865
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это затрагивает, только единственный поток.

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100868
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kotъ-Begemotъ!
You wrote on Tue, 21 Jul 09 11:12:49 GMT:

Kotъ-Begemotъ KB> для вывода в консоль ИЗ МОЕГО приложения будет использована нужная СР?да

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100881
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, даже не знал о подобной возможности! Только одна засада, надо по идее проверять ключ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage на предмет установленности нужной СР? Правильно я понимаю?
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100888
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kotъ-Begemotъ!
You wrote on Tue, 21 Jul 09 11:20:28 GMT:

Kotъ-BegemotъТолько одна засада, надо по идее проверять ключнафуя?

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100891
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
Hello, Kotъ-Begemotъ!
You wrote on Tue, 21 Jul 09 11:20:28 GMT:

Kotъ-BegemotъТолько одна засада, надо по идее проверять ключнафуя?

--
With best regards, Мимопроходящий.


А вдруг нужная мне СР 1251 вообще не установлена?
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100896
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так проверяй или не проверяй - все одно, будут абракадабры

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100907
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kotъ-Begemotъ!
You wrote on Tue, 21 Jul 09 11:23:17 GMT:

Kotъ-Begemotъ KB> А вдруг нужная мне СР 1251 вообще не установлена?функция вернёт ошибку.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100918
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда не понял чего-то

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
 var 
        Error: Integer;
         yy: Boolean;

 begin 

  Application.Initialize;
  Error := GetConsoleOutputCP;
  ShowMessage(IntToStr(Error));  // Выводит "866" 

  yy := SetConsoleOutputCP( 1251 );
   if  yy  then 
   ShowMessage('Успешно!')
    else 
    ShowMessage('Облом!');  // Выводит "Успешно!" 

   if  (ParamCount <  1 )  then 
   begin 
    WriteLn('Не указан ключ реестра!');  // Выводит кракозябры :( 
    Exit;
   end ;
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36100966
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kotъ-Begemotъ!
You wrote on Tue, 21 Jul 09 11:34:10 GMT:

Kotъ-Begemotъ KB> Выводит кракозябры :( бо шрифт!

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36101268
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну чо там, кот, решил вопрос со шрифтами?
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36101347
ASVShade
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Куча ответов и ниодного едльного))))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 function  rus (mes:  string ) :  string ;
 var 
  i                                     : integer;
 begin 
   for  i :=  1   to  length (mes)  do 
     case  mes[i]  of 
      'А'..'П', 'а'..'п', 'Р'..'Я': mes[i] := chr (ord (mes[i]) - 64 ) ;
      'р'..'я': mes[i] := chr (ord (mes[i]) - 16 ) ;
     end ;
  rus := mes;
 end ;
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36101364
Фотография Альт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я может чего не понял... но обычно на консолях перед вызовом "приложения" выполняют:
chcp
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36101368
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Альт!
You wrote on Tue, 21 Jul 09 14:07:16 GMT:

Альт А> Я может чего не понял... но обычно на консолях перед вызовом "приложения" выполняют:
А> chcpконсоль, это не совсем то что ты думаешь.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36101647
Фотография Asm64D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тему не читал, по сабжу
Русификация консольных приложений в Delphi
Еще занятное
Почему вместо русских букв в консольном приложении выводится мусор?

И усе пошел дальше праздновать 22-летие.
______________________________________________________________
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36101690
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Asm64D!
You wrote on Tue, 21 Jul 09 16:01:23 GMT:

Asm64D A> Русификация консольных приложений в DelphiоченЬ, очень спорное решение...

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36102534
Kotъ-Begemotъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийну чо там, кот, решил вопрос со шрифтами?
Да пока остановился на том, что выдрал из DBTables функцию-обёртку над CharToOem и перекодирую мессаги выводимые в консоль. Это работает исправно. Надо будет еще ссылки приведённые почитать...

Код: plaintext
1.
2.
3.
4.
5.
 function  StrToOem( const  AnsiStr:  string ):  string ;
 begin 
  SetLength(Result, Length(AnsiStr));
   if  Length(Result) >  0   then 
    CharToOem(PChar(AnsiStr), PChar(Result));
 end ;
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36102561
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On Wed, 22 Jul 2009 12:56:38 +0400, Kotъ-Begemotъ <nospam@sql.ru>; wrote:

> Автор: Kotъ-Begemotъ

Юрич, чтой-то я тебя как-то перестал понимать...
У меня нижеприведённый код отрабатывает нормально...
Вот такой код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
uses
   Windows,
   SysUtils;

{$APPTYPE CONSOLE}

var
   Error: Integer;
   yy: Boolean;

begin
   Error := GetConsoleOutputCP;
   Writeln('IntToStr(Error) = ', IntToStr(Error)); // Выводит "866"

   yy := SetConsoleOutputCP( 1251 );
   if yy then
     Writeln('Успешно!')
   else
     Writeln('Облом!'); // Выводит "Успешно!"

   if (ParamCount <  1 ) then
   begin
     Writeln('Не указан ключ реестра!'); // НЕ ВЫВОДИТ КРАКОЗЯБРЫ :(
     Exit;
   end;
end.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36102594
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это у тебя, а у него возможно
Мимопроходящий бо шрифт!

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36102597
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kotъ-Begemotъ!
You wrote on Wed, 22 Jul 09 08:56:38 GMT:

Kotъ-Begemotъ KB> Да пока остановился на том, что выдрал из DBTables функцию-обёртку
KB> над CharToOem и перекодирую мессаги выводимые в консоль.ну, дело твоё.
я лично пользую нативные кодировки с юникодными шрифтами.
и вот со шрифтами там есть ньюанец. потому и спросил.
Kotъ-Begemotъ KB> Надо будет еще ссылки приведённые почитать...оно того не стоит.
первая сцылка вообще пипец, а вторая пользует тот же подход что и ты.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36102643
Фотография zirra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...или даже вот так вот (см.вложение, т.к. символы могут попортится)...
...
Рейтинг: 0 / 0
Вывод русского текста в консольном приложении
    #36102650
Фотография Anatoly Podgoretsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора вторая пользует тот же подход что и ты.
Не совсем так, в статье подход правильный, если абстрагироваться от Си, то там будет работать и для Юникод и для АНСИ, а у автора не совсем так, работать будет, но с лишними преобразованиями, в зависимости от версии Дельфи или вообще не будет работать.
Тут нужен отказ от функции и/или переписывание заголовка функции. Нюансов много.

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вывод русского текста в консольном приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]