Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.



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

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

Наверх





Память: 0.48 MB
Время: 0.005 c
14-42853
zero
2001-12-26 11:59
2002.02.14
Сегодня день рождения Чарльза Бэббиджа - изобретателя компьютера


4-42892
Shadow77
2001-12-17 15:27
2002.02.14
Как узнать, активно или нет данное окно?


3-42679
Jony
2002-01-22 09:36
2002.02.14
Числа с запятой в Insert и Update


1-42808
Ig
2002-01-31 23:37
2002.02.14
Нужны алгоритмы обработки изображений!!!


14-42857
artur
2001-12-26 14:32
2002.02.14
delphi для windows 2000 server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский