Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];

Вниз

Конвертация из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.016 c
1-98651
учу
2003-10-17 11:03
2003.10.30
Перерисовка Image


14-98787
yaJohn
2003-10-10 13:24
2003.10.30
Маленькое одностороннее пари.


8-98748
Ilg
2003-06-29 19:10
2003.10.30
Ограничение области рисования


9-98427
diaz
2003-04-23 11:54
2003.10.30
OpenGL : Кватернионы повержены !


3-98500
zergey
2003-10-09 14:49
2003.10.30
jpeg + блоб





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский