Форум: "Основная";
Текущий архив: 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