Здравствуйте уважаемые!
У меня такой вопрос - существует ли компонет для перекодировки Text2HTML и обратно (желательно бесплатный и с исходниками :-)).
Заранее благодарен.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
Cпасибо всем кто проявляет интерес к данному вопросу. Буду отвечать и давать коменты постепенно:
1. 2Антон Григорьев
А теперь специально для меня поясните пожалуйста: откуда перекодировщик должен брать информацию о том, где какой шрифт, форматирование и т.п. txt в классическом понимании этого формата такой информации не содержат.
Да, извините, не указал что работаем с rtf (тотже текст только с поддержкой форматирования).
2. Для всех
Привожу работающую процедуру перекодировки TxtToHTML. Пользуйтесь.
{конвертер Text в HTML}
procedure TForm1.Convert_TextToHTML(Sender: TObject);
VAR
i,y : integer;
line, line1, line2: string;
italic, bolt, underline : Boolean;
begin
italic:=false;
bolt:=false;
underline:=false;
for i:=0 to RichEdit1.Lines.Count-1 do
begin
RichEdit1Click(Self);
line:=RichEdit1.Lines[i];
line1:='';
line2:='';
if line='' then line1:='<br>';
for y:=1 to Length(line) do
begin
line2:=Copy(line,y,1);
RichEdit1.SelStart := RichEdit1.Perform(EM_LINEINDEX, i, 0) + y-1;
RichEdit1.SelLength:=1;
if fsUnderline in RichEdit1.SelAttributes.Style then
begin
if underline=false then
begin
line2:='<u>'+line2;
underline:=true;
end;
end
else
begin
if underline=true then
begin
line2:='</u>'+line2;
underline:=false;
end;
end;
if fsItalic in RichEdit1.SelAttributes.Style then
begin
if italic=false then
begin
line2:='<i>'+line2;
italic:=true;
end;
end
else
begin
if italic=true then
begin
line2:='</i>'+line2;
italic:=false;
end;
end;
if fsBold in RichEdit1.SelAttributes.Style then
begin
if bolt=false then
begin
line2:='<b>'+line2;
bolt:=true;
end;
end
else
begin
if bolt=true then
begin
line2:='</b>'+line2;
bolt:=false;
end;
end;
if y=Length(line) then
begin
if bolt=true then
begin
line2:=line2+'</b>';
bolt:=false;
end;
if italic=true then
begin
line2:=line2+'</i>';
italic:=false;
end;
if underline=true then
begin
line2:=line2+'</u>';
underline:=false;
end;
line2:=line2+'<br>';
end;
Все предельно просто и понятно, но очень сыро. Если есть желание то пишите Ваши предложения и советы. Буду рад чемунибудь научиться или научить :-). Все не так уж сложно как кажется. Поверьте!
>>> txt в классическом понимании этого формата такой информации не содержат
Да, но в некоторых случаях такую информацию восстановить можно. Например, _слово_ в большинстве случаев означает слово. Нумерованный список следует заменить на <ol>...<li>...</ol> (интерпретатор Королевства не сошел с ума? Вот и ладненько). Переносы строк следует заменять на <br> или <p> в зависимости от обстоятельств. Заголовки тоже можно выявлять и выделять <h1>...</h1>. Разделенные строчки следует склеивать. Участки кода вроде begin...end надо выделять жирным. Задача прямо скажу, очень и очень непростая. Решается она только в частных случаях, например, Geo написал для Королевства такой "преобразователь" - для кода на Паскале. Таких конвертеров в Интернете - завались, но они с закрытым кодом. Для художественной литературы лучшее (IMHO) - IceReader.
Уважаемый Geo для Вас я специально поясню.
Перекодировка из текста в ХТМЛ это: расстановка тэгов согласно форматирования документа (размер шрифта, выравнивание, стиль (болд, италик)....).
А теперь специально для меня поясните пожалуйста: откуда перекодировщик должен брать информацию о том, где какой шрифт, форматирование и т.п. txt в классическом понимании этого формата такой информации не содержат.
А HTML -- это разве не текст? Так в чем будет заключаться перекодировка из HTML в текст? В вырезании тэгов что ли?
Уважаемый Geo для Вас я специально поясню.
Перекодировка из текста в ХТМЛ это: расстановка тэгов согласно форматирования документа (размер шрифта, выравнивание, стиль (болд, италик)....).
Перекодировка из ХТМЛ в текст это: удаление из файла тегов форматирования документа (каких - читай выше).
14-12-2005 01:48 | Вопрос к автору: запрос дополнительной информации
Э-э-э-э... А HTML -- это разве не текст? Так в чем будет заключаться перекодировка из HTML в текст? В вырезании тэгов что ли? А обратно тогда вообще непонятно :-)
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.