Форум: "Основная";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизКак перенести текст из RichEdit с сохранением форматирования Найти похожие ветки
← →
Kirflaer © (2007-03-02 11:42) [0]Здравствуйте, у меня проблема, необходимо перенести данные из RichEdit в html, с сохранением форматирования, я вот написал
процедурку:
count:=0;
c:=0;
SetLength(Ar,RichEdit1.Lines.Count);
repeat
begin
Application.ProcessMessages;
RichEdit1.SelStart:=count;
len:=Length(RichEdit1.Lines.Strings[c]);
s:="";
p:="";
for i:=0 to len do
begin
p:="";
Application.ProcessMessages;
RichEdit1.SelStart:=i+count;
RichEdit1.SelLength:=1;
if ((fsBold) in (RichEdit1.SelAttributes.Style)) or((fsItalic)in (RichEdit1.SelAttributes.Style))
or((fsUnderline) in (RichEdit1.SelAttributes.Style)) then
begin
if ((fsBold) in (RichEdit1.SelAttributes.Style)) and
((fsItalic)in (RichEdit1.SelAttributes.Style)) and
((fsUnderline) in (RichEdit1.SelAttributes.Style))
then
s:=s+теги форматирования+RichEdit1.SelText
else
if ((fsBold) in (RichEdit1.SelAttributes.Style)) and
((fsItalic)in (RichEdit1.SelAttributes.Style))
then
s:=s+теги форматирования+RichEdit1.SelText
else
if ((fsBold) in (RichEdit1.SelAttributes.Style)) and
((fsUnderline) in (RichEdit1.SelAttributes.Style))
then
s:=s+теги форматирования+RichEdit1.SelText
else
if ((fsItalic) in (RichEdit1.SelAttributes.Style)) and
((fsUnderline)in (RichEdit1.SelAttributes.Style))
then
s:=s+теги форматирования+RichEdit1.SelText
else
if ((fsBold) in (RichEdit1.SelAttributes.Style)) then
s:=s+""+RichEdit1.SelText+""
else
if ((fsItalic) in (RichEdit1.SelAttributes.Style)) then
s:=s+теги форматирования+RichEdit1.SelText
else
if ((fsUnderline) in (RichEdit1.SelAttributes.Style)) then
s:=s+теги форматирования+RichEdit1.SelText
end
else
s:=s+RichEdit1.SelText;
Ar[c]:=Ar[c]+s;
Ar[c]:=StringReplaceAll(Ar[c],"</b><b>",""); // Удаляем лишние теги
Ar[c]:=StringReplaceAll(Ar[c],"</i><i>","");
Ar[c]:=StringReplaceAll(Ar[c],"</u><u>","");
count:=len+count+2;
c:=c+1;
end;
until c = RichEdit1.Lines.Count;
вот она работает, но при относительно больших обьемах текста кидает.
Я думаю обрабатывать текст по частям в потоках, но хотелась бы спросить более продуктивный способ
← →
DimaBr (2007-03-02 12:48) [1]Даже читать не стал
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
← →
Жуков Олег (2007-03-02 16:51) [2]Посмотри здесь http://atnode.ru/?part=104.
На днях там выложу обновление RtfToHtml (дополнения связаны только с таблицами).
← →
reaL_Frick (2007-03-07 11:59) [3]Огромное спасибо, алгоритм очень помог.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c