Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Смена кодировки текста


Автор: Samhein 15.8.2005, 17:57
Рад приветствовать вас, товарищи программисты!
Немогли бы вы мне подсказать, как сменить кодировку текста который находиться в RichEdit? smile

Автор: Romikgy 16.8.2005, 08:37
С какой на какую?

Автор: s-mike 16.8.2005, 09:30
RichEdit.Font.Charset

Автор: Samhein 16.8.2005, 11:05
Цитата
С какой на какую?

В виндовской на досовскую и обратно если можно...
Цитата
RichEdit.Font.Charset

А какое значение что означает?

Автор: Romikgy 16.8.2005, 12:37
Можно воспользоватся мсдновскими OemToChar и CharToOem smile

Автор: Samhein 16.8.2005, 13:03
Цитата
Можно воспользоватся мсдновскими OemToChar и CharToOem smile

smile

Автор: chaos 16.8.2005, 13:09
Код

BOOL OemToChar(
  LPCSTR lpszSrc,  // pointer to string to translate
  LPTSTR lpszDst   // pointer to buffer for translated string
);

BOOL CharToOem(
  LPCTSTR lpszSrc,  // pointer to string to translate
  LPSTR lpszDst     // pointer to translated string
);


тут и без примера все понятно

лежат они в USER32.DLL

Автор: Romikgy 16.8.2005, 13:46
Цитата(Samhein @ 16.8.2005, 13:03)
Цитата
Можно воспользоватся мсдновскими OemToChar и CharToOem smile

smile

Смысл такой
Код

procedure TForm1.Button9Click(Sender: TObject);
var str: string;
    tex,tex1: array [0..255] of char;
begin
  str:='Привет чуваки';
  StrPCopy(tex,str);
  {CharToOem}OemToChar(tex,tex1);
  edit1.Text:=StrPas(tex1);
end;

Добавлено @ 13:52
Вместо str поставь RichEdit.lines.text и будет тебе счастье ( smile не мои словаsmile )

Автор: Samhein 16.8.2005, 14:45
Romikgy, я еще не врублюсь smile smile

Тут я посмотрел... каждый раз при нажатии кнопки кодировка меняется на новою...
А мне надо только две, что из одной в другую и обратно

Автор: s-mike 16.8.2005, 16:15
Цитата(Romikgy @ 16.8.2005, 13:46)
procedure TForm1.Button9Click(Sender: TObject);
var str: string;
    tex,tex1: array [0..255] of char;
begin
  str:='Привет чуваки';
  StrPCopy(tex,str);
  {CharToOem}OemToChar(tex,tex1);
  edit1.Text:=StrPas(tex1);
end;

Код из Дельфи 2?

Код

function AnsiToOemStr(const AnsiStr: string): string;
begin
  SetLength(Result, Length(AnsiStr));
  if Length(Result) > 0 then
    CharToOemBuff(PChar(AnsiStr), PChar(Result), Length(Result));
end;

function OemToAnsiStr(const OemStr: string): string;
begin
  SetLength(Result, Length(OemStr));
  if Length(Result) > 0 then
    OemToCharBuff(PChar(OemStr), PChar(Result), Length(Result));
end;

Автор: Romikgy 17.8.2005, 09:48
Цитата(s @ 16.8.2005, 16:15)
Код из Дельфи 2?

Три, на нем пока пишу.

Samhein
Тебе более подробно
s-mikeответил , хотя и немного другими функциями smile

Автор: Samhein 17.8.2005, 11:46
Всем огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Оч. помогли...

Автор: s-mike 17.8.2005, 13:07
Цитата(Romikgy @ 17.8.2005, 09:48)
Тебе более подробно
s-mikeответил , хотя и немного другими функциями smile

Просто в последних Дельфи (не помню точно с какой) функция StrPas является устаревшей, а string можно применять в качестве var-параметра вместо PChar. Таким образом снимается ограничение на длину строк возвращаемых в виде PChar.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)