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

Вниз

Обработка HTML   Найти похожие ветки 

 
^^^Dragon^^^ ©   (2003-10-25 18:20) [0]

Помогите, плз. Есть код, анализирующий простую HTML-строку (в которой нет конструкции тег-в-теге)и извлекающий из нее текст.

var
i:integer;
begin
if tagopen=true then
begin
for i:=n to length(source.Lines.Strings[4]) do
begin
if source.Lines.Strings[4][i]=">" then
begin
tagopen:=false;
n:=i+1;
Test;
end;
end;

end
else
begin
for i:=n to length(source.Lines.Strings[4]) do
begin
if source.Lines.Strings[4][i]<>"<" then
itog:=itog+source.Lines.Strings[4]
else
begin
tagopen:=true;
n:=n+1;
Test;
end;
end;
end;
end;

Работать не хочет. Подозреваю, что здесь конфликт переменных. Помогите, пажалуйста. Спасибо


 
Deedlit ©   (2003-10-25 18:50) [1]

Честно говоря, никак не могу въехать в твою процедуру. ;) Сама в свое время пользовалась вот такой штукой:

function EraseTag(Line: string): string;
begin
While pos("<", Line)<>0 do
Delete(Line, pos("<", Line), pos(">", Line)-pos("<", Line)+2);
Result:=Line;
end;


Может, пригодится? :) Работает при условии, что все теги закрыты. Если для тебя это критично... имхо, проще дописать сюда строчку-проверку, чем искать баги. ;)


 
^^^Dragon^^^ ©   (2003-10-25 19:45) [2]

За функцию огромное спасибо, но есть одно НО:
вот такая конструкция: <tag<eshe_tag>znachenie</eshe_tag>>text</tag>

или

<tag svoystvo=znachenie>text</tag>

в этих случаях нужного результата не получится :(
Кстати, функция, почему-то, удаляет еще и первый символ (исправить так и не получилось).



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

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

Наверх




Память: 0.47 MB
Время: 0.033 c
1-41617
race1
2003-10-25 15:21
2003.11.13
region


14-41986
}|{yk
2003-10-23 19:57
2003.11.13
Война отменяется!


14-41965
DeMoN-777
2003-10-15 17:06
2003.11.13
Выделенная линия в Петербурге


1-41226
Sewix
2003-11-01 08:44
2003.11.13
Как установить значение Colorbox а из файла


1-41586
Василиск
2003-10-27 11:37
2003.11.13
Delphi и Excel (проблема с последним)