Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.14;
Скачать: CL | DM;

Вниз

Помогите пожалуйста!   Найти похожие ветки 

 
HDD   (2002-01-30 05:54) [0]

Как в RichEdit1 сменить кодировку текста с Дос в Виндовс и обратно? Желательно на примере?
Заранее благодарен Кирилл!


 
pasha_golub   (2002-01-30 11:58) [1]

CharToOem, OemToChar. Функции такие. Методов у самого Рича нет. Так что берешь цикл по строкам конвертируешь и обратно записываешь. 1 - из Винды в ДОС, 2 - наооборот. Больше информации в хелпе! Удачи


 
HDD   (2002-01-30 13:08) [2]

To Pasha
А по подробнее с примерами кода?


 
HDD   (2002-01-30 13:59) [3]

Люди добрые помогите пожалуйста!


 
Андрей Сенченко   (2002-01-30 14:30) [4]

Тебе же все сказали CharToOem, OemToChar
Набираешь, жмешь Ctrl-F1 и смотришь


 
HDD   (2002-01-30 15:29) [5]

Извините что добиваю своей тупостью, но что-то не могу нифига разобраться. Пробую вот так нифига!
CharToOEM(PChar(RichEdit1.Lines.Text), PChar(RichEdit1.Lines.Text));


 
Андрей Сенченко   (2002-01-30 15:50) [6]

RichEdit1.Lines - это НАБОР СТРОК Твоего RichEdit-a. Фактически получается, что Ты пытаешься преобразовать неизвестно что.
Сделай по другому:
RichEdit1.Lines.Strings[i]
где i-номер строки. Учти, что нумерация здесь с "0"


 
Андрей Сенченко   (2002-01-30 15:54) [7]

Потому что RichEdit1.Lines - это просто НАБОР СТРОК Твоего RichEdit. К каждой строке этого набора нужно доступаться по его индексу, а не по первому попавшемуся свойству нужного типа.
Сделай так:
RichEdit1.Lines.Strings[i]
где i - инджекс ( номер ) строки. Учти, что здесь нумерация с "0"


 
HDD   (2002-01-30 16:10) [8]

procedure TForm1.ToolButton1Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to RichEdit1.Lines.Count - 1 do begin
CharToOem(PChar(RichEdit1.Lines.Strings[i]), PChar(RichEdit1.Lines.Strings[i]));
end;
end;
Пробую вот так! Не получается!


 
Андрей Сенченко   (2002-01-30 16:16) [9]

В чем выражается "Не получается" ?


 
HDD   (2002-01-30 16:20) [10]

Пишет типа ошибка в kernel32 когда большой текст пытаешся перевести!
А когда маленький кусочек тогда просто вообще ничего не происходит!


 
Андрей Сенченко   (2002-01-30 17:03) [11]

Извини, отлучался... Работать то работает, вот только видимого результата у Тебя не будет.
Попробуй поиграть вот с этим кодом и многое поймешь:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
s : string;
begin
for i:=0 to RichEdit1.Lines.Count - 1 do
begin
s := RichEdit1.Lines.Strings[0];
messageBox(0,pchar(s),pchar("do"),mb_ok);
CharToOem(PChar(s),PChar(s));
messageBox(0,pchar(s),pchar("posle"),mb_ok);
RichEdit1.Lines.Delete(0);
RichEdit1.Lines.Add(s);
end;


 
HDD   (2002-01-31 02:56) [12]

Вот так вроде работает! Но если есть пустые строки в тексте! То опятьтакая же ошибка!


 
HDD   (2002-01-31 06:53) [13]

Люди добрые помогите пожалуйста!


 
Mbo   (2002-01-31 07:04) [14]

ответ вытекает из вопроса
s := RichEdit1.Lines.Strings[i];
if s<>"" then ...


 
KS   (2002-01-31 09:14) [15]

to: Андрей Сенченко © (30.01.02 15:50)

Чтож Вы HDD запретили с RichEdit1.Lines.Text работать
(он же именно Text пытался использовать)

А с ним вроде бы красивее получается (если конечно в длину
string-а поместимся :о) )

var
S: string;
begin
S := RichEdit1.Lines.Text;
if Length(S) > 0 then begin
OEMToChar(PChar(S), PChar(S));
RichEdit1.Lines.Text := S;
end;
end;


 
serjant   (2002-01-31 10:11) [16]

Используй функции CharToOEM && OEMToChar


 
IronHawk   (2002-01-31 10:25) [17]

>>> HDD

windows charset

RichEdit1.Font.Charset:=ANSI_CHARSET;

dos charset

RichEdit1.Font.Charset:=OEM_CHARSET;


 
IronHawk   (2002-01-31 10:28) [18]

excuse me

NO RichEdit1.Font.Charset:=ANSI_CHARSET;

correct

RichEdit1.Font.Charset:=DEFAULT_CHARSET;


 
Андрей Сенченко   (2002-01-31 12:29) [19]

> KS (31.01.02 09:14)
Никто ничего не запрещал ... я сказал то, что сказал : "Фактически получается, что Ты пытаешься преобразовать неизвестно что"
И это действительно так: Вы же сами в соей реплике наложили ограничение в виде размера string-овой переменной


 
pasha_golub   (2002-01-31 13:56) [20]

>IronHawk © (31.01.02 10:28)
Я не уверен, но Default по-моему значит по умолчанию, а это не обязательно ANSI.



Страницы: 1 вся ветка

Текущий архив: 2002.02.14;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
3-42682
xmapa
2002-01-22 10:51
2002.02.14
Поле-массив в InterBase


14-42836
RhinoFC
2001-12-25 07:04
2002.02.14
У вас есть файл proxies.pas?


1-42731
Kurt
2002-01-29 23:13
2002.02.14
Связь между приложениями


1-42734
Alexxx
2002-01-29 15:19
2002.02.14
Печать из дельфи документов в 866 кодировке с псевдографикой


14-42849
fliz
2001-12-25 10:32
2002.02.14
Кто какие елки ставить будет - натуральные или исскуственные ?