Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Вниз

Помогите пожалуйста! 


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.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.017 c
1-42797           DimaIv                2002-01-31 19:57  2002.02.14  
Как вывеcти jpg картинку на полный экран (fullscren)


1-42718           SAlex                 2002-01-30 12:01  2002.02.14  
<B>Text Object Model </B>


3-42659           Demon Ltd             2002-01-21 01:22  2002.02.14  
Работа из Edit ов с базами


14-42844          Oleg Gashev           2001-12-24 22:43  2002.02.14  
С Новым Годом!!!


3-42685           NOV                   2002-01-21 12:38  2002.02.14  
alias