Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2009, 13:56   #1
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию не правильное отображение русского языка в delphi 2009

есть пару проблем в delphi 2009. Не корректно выводятся сообщения на русском языке (через writeln), а также не корректно копируется текст в буфер обмена.
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, Clipbrd;
  var s:string;

begin
 writeln ('Введите строку');
 readln (s);
 clipboard.astext:=s;
 end.
motaro вне форума Ответить с цитированием
Старый 06.06.2009, 14:32   #2
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Кодировки символов в DOS и Windows разные
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, Clipbrd, Windows;
  var s:string;

//Перекодировка ANSI->OEM
function ConvertAnsiToOem(const S: string): string;
begin
  SetLength(Result,Length(S));
  if Length(Result) > 0 then AnsiToOem(PChar(S),PChar(Result));
end; //ConvertAnsiToOem

begin
 writeln (ConvertAnsiToOem('Введите строку'));
 readln (s);
 clipboard.astext:=s;
 end.
_Dmitry вне форума Ответить с цитированием
Старый 06.06.2009, 14:37   #3
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
SetConsoleOutputCP(1251);
И шрифт поставте Lucida и модуль Windows подключите

Последний раз редактировалось Evgeniy26; 06.06.2009 в 14:43.
Evgeniy26 вне форума Ответить с цитированием
Старый 06.06.2009, 14:58   #4
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

_Dmitry, попробовал этот код выводит следующее (на строке 13):

[DCC Error] Project1.dpr(14): E2010 Incompatible types: 'Char' and 'AnsiChar'
[DCC Error] Project1.dpr(14): E2010 Incompatible types: 'Char' and 'AnsiChar'
motaro вне форума Ответить с цитированием
Старый 06.06.2009, 14:59   #5
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Попобуйте
Код:
AnsiToOem(PAnsiChar(S),PAnsiChar(Result));
Откомпилить должно. Но результат?

Последний раз редактировалось Evgeniy26; 06.06.2009 в 15:15.
Evgeniy26 вне форума Ответить с цитированием
Старый 06.06.2009, 15:07   #6
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

В Delphi 2006 работает, в Delphi 2009 проверить нет возможности, из-за отсутствия таковой.
_Dmitry вне форума Ответить с цитированием
Старый 06.06.2009, 15:45   #7
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от Evgeniy26 Посмотреть сообщение
Попобуйте
Код:
AnsiToOem(PAnsiChar(S),PAnsiChar(Result));
Откомпилить должно. Но результат?
а куда это вставлять?
motaro вне форума Ответить с цитированием
Старый 06.06.2009, 22:51   #8
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

http://www.delphiplus.org/articles/d...s_console.html

Интересно, в Delphi 2009 последний вариант работает?
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 07.06.2009, 23:08   #9
motaro
Форумчанин
 
Регистрация: 10.07.2007
Сообщений: 104
По умолчанию

Цитата:
Сообщение от OCTAGRAM Посмотреть сообщение
http://www.delphiplus.org/articles/d...s_console.html

Интересно, в Delphi 2009 последний вариант работает?
че-то не катит.
motaro вне форума Ответить с цитированием
Старый 25.09.2009, 20:41   #10
Vampirius
Пользователь
 
Аватар для Vampirius
 
Регистрация: 25.09.2009
Сообщений: 22
По умолчанию

//*********************************** **************
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; //case
rus:=S
end;
//*********************************** **************


вот так по идее можно перекодировать
Лишь утратив всё до конца, мы обретаем свободу...©
Vampirius вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Правильное окончание слова Derol Помощь студентам 2 01.06.2009 07:50
Шифрация Русского Языка (С++/Но помоему не зависит) Balizard Помощь студентам 2 02.05.2009 09:27
Правильное закрытие приложения в Delphi 7 Alex Cones Общие вопросы Delphi 5 18.04.2009 22:06
Поддержка русского языка в сообщении shurik_7866 Работа с сетью в Delphi 2 08.01.2008 17:09
Отображение немецкого языка Djaconda Общие вопросы Delphi 3 01.12.2007 21:48