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

Вниз

Конвертация из RTF в String   Найти похожие ветки 

 
Гость из далека   (2003-10-20 22:31) [0]

Есть текст (приходит из ICQ):
{\rtf1\ansi\ansicpg1251\deff0\deflang1049{\fonttbl{\f0\froman\fprq2\fcharset204{\*\fname Times New Roman;}Times New Roman CYR;}}
{\colortbl ;\red64\green0\blue64;}
\viewkind4\uc1\pard\cf1\b\i\f0\fs22\"d1\"ee\"e1 \"b9 37 \"d2\"f0\"ee\"ed\"f5\"e5\"e9\"ec-\"c1\"e5\"f0\"e3\"e5\"ed \"e2\"e0\"f0 2\"d4(3) \"ea\"ee\"fd\"f4 1,85 \"f1\"f3\"ec 5 000 \"e1\"f0\"e0\"f2\"fc?\par
}

Вопрос, кто скажет как это преобразовать к обычной строке:
Соб № 37 Тронхейм-Берген вар 2Ф(3) коэф 1,85 сум 5 000 брать?


 
Ugh   (2003-10-21 01:53) [1]

Ара дарагой! Используй RichEdit со свойством PlaintText:=TRUE
Должно сработать...или чтобы сохранить все настройки(шрифт,цвет) загружай в ричэдит из потока,TStringStream(например).


 
Гость из далека   (2003-10-21 02:02) [2]

Один способ нашел (спасибо Snap):
RichEdit2.Lines.Clear;
try
RichEdit2.Lines.Add(Memo2.Text);
except
end;
Memo1.Text := RichEdit2.Text;

Но для этого RichEdit должен лежать на форме и буть Visible = True. А у меня COM объект, который всей этой прелести не имеет.
Уважаемые мастера, что подскажите?


 
Rouse_ ©   (2003-10-21 09:04) [3]

Не обязательно на форме и не обязательно Visible := True, создавай его динамически работай с ним как тебе надо и удаляй его.

Желаю успехов


 
лёха   (2003-10-21 10:18) [4]

Хотя на самом то деле это обычный hex текс \"b9-№ можно просто каждый символ преобразовывать :)


 
Гость из далека   (2003-10-21 11:40) [5]


> Rouse_ © (21.10.03 09:04) [3]
> Не обязательно на форме и не обязательно Visible := True,
> создавай его динамически работай с ним как тебе надо и удаляй
> его.
>
> Желаю успехов

Если создаю динамически в COM и без Parent-а то пишет вот такую прелесть: Comtrol "" has no parent Window


 
PVOzerski ©   (2003-10-21 12:15) [6]

А если Parent Window-таки сделать, только невидимым? Например, создать такое окошко средствами API, а RichEdit - через конструктор CreateParented?


 
Гость из далека   (2003-10-21 12:54) [7]

Сделал вот так:
function RTFtoTXT(AStr: String): String;
var
Win: TForm;
R: TRichEdit;
begin
try
Result := "Error convert";
Win := TForm.Create(nil);
try
R := TRichEdit.Create(Win);
R.Parent := Win;
R.Visible := True;
R.WordWrap := False;
try
R.Lines.Add(AStr)
except end;
Result := R.Text;
finally
Win.Free;
end;
finally

end;
end;

Вроде бы бегает. Что скажите?


 
Гость из далека   (2003-10-21 12:55) [8]

Не, не так, вот так:
function RTFtoTXT(AStr: String): String;
var
Win: TForm;
R: TRichEdit;
begin
try
Result := "Error convert";
Win := TForm.Create(nil);
try
R := TRichEdit.Create(Win);
try
R.Parent := Win;
R.Visible := True;
R.WordWrap := False;
try
R.Lines.Add(AStr)
except end;
Result := R.Text;
finally
R.Free;
end;
finally
Win.Free;
end;
finally

end;
end;


 
Rouse_ ©   (2003-10-21 14:18) [9]

Except вообщето для этого и предназначен чтобы обработать и отобразить ошибку. Плюс отсутствует проверка на присутствие текста в AStr;

Желаю успехов


 
Rouse_ ©   (2003-10-21 14:25) [10]

Да ну и еще. Налицо слишком большая перестраховка. Проще, раз уж так боишся, забить в один Try... finally...end. И удалять по Assigned т.к. других ошибок в данном коде быть не должно.

Желаю успехов



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
3-98499
Данила
2003-10-08 15:21
2003.10.30
Поиск в Access e


11-98535
Immortal_
2003-02-12 00:35
2003.10.30
PaintBox + MCK - Пример бы...


3-98528
Брат
2003-10-08 16:43
2003.10.30
Как сделать чтобы в таблице не выводило INF и NAN?


1-98676
Eugene_29
2003-10-20 19:25
2003.10.30
Поле ввода фикс. размера с автомат. изменяющимся размером шрифта


1-98645
dream
2003-10-17 12:21
2003.10.30
поставил новый компонент и решил посмотреть demo , и тут начались