Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Работа с DIRegEx -библиотека регулярных выражений для Delphi

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
program DITidy_Extract_Links;
 
{$APPTYPE CONSOLE}
{$I DI.inc}
 
uses
 
{$IFDEF FastMM}FastMM4, {$ENDIF}SysUtils, DITidy;
 
{ Calls itself recursively to iterate all children of a given node.
  Each node is checked for links, which are written out to the console. }
procedure WriteLinks(const ANode: TidyNode);
var
 
a: TidyAttr;
 
c: TidyNode;
begin
 
c := tidyGetChild(ANode);
 
while Assigned(c) do
    begin
 
      case
tidyNodeGetType(ANode) of
       
TidyNode_Start, TidyNode_StartEnd:
         
case tidyNodeGetId(ANode) of
           
TidyTag_A:
             
begin
               
a := tidyAttrGetByID(ANode, TidyAttr_HREF);
               
if Assigned(a) then
                 
WriteLn(tidyAttrValue(a));
             
end;
         
end;
     
end;
 
     
{ Now for the children ... }
     
WriteLinks(c);
     
c := tidyGetNext(c);
   
end;
end;
 
label
 
lblDone;
var
 
Doc: TidyDoc;
 
ErrorBuffer: TidyBuffer;
 
FileName: string = '';
 
RC: Integer;
begin
  if
ParamCount <> 1 then
    begin
     
WriteLn('Usage: ', ExtractFileName(ParamStr(0)), ' <File>');
     
goto lblDone;
   
end;
 
FileName := ParamStr(1);
 
 
Doc := tidyCreate;
 
RC := tidySetErrorBuffer(Doc, @ErrorBuffer);
 
 
if RC >= 0 then
    begin
     
{ Parse the file. }
     
RC := tidyParseFile(Doc, PAnsiChar(AnsiString(FileName)));
     
{ Show potential warnings and errors. }
     
WriteLn(PAnsiChar(ErrorBuffer.bp));
 
     
{ If document loaded OK, write out its links. }
     
if RC >= 0 then
        begin
         
WriteLn;
         
WriteLn('Links in ', FileName, ':');
         
WriteLn;
         
WriteLinks(tidyGetRoot(Doc));
       
end;
   
end;
 
 
tidyBufFree(@ErrorBuffer);
 
tidyRelease(Doc);
 
 
lblDone:
 
WriteLn;
 
WriteLn('Done - Press ENTER to exit');
 
ReadLn;
end.
 
 ?  Код создан и опубликован с помощью SciTE-Ru

----------
Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее.
Кекс. Антибиотики. Ламбада.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 12:50 15-01-2010 | Исправлено: data man, 12:51 15-01-2010
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Работа с DIRegEx -библиотека регулярных выражений для Delphi


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru