DirQueue QUEUE,PRE(DQ)
FullPath STRING(512)
END
FileQueue QUEUE(File:queue),PRE(FQ)
END
URLQueue QUEUE,PRE(URL)
Name STRING(256)
Link STRING(1024)
END
LOC:Path STRING(512)
LOC:Counter LONG
LOC:Inner LONG
LOC:ASCFileName STRING(512)
ASCFile FILE,DRIVER('ASCII'),PRE(ASC),NAME(LOC:ASCFileName)
Record RECORD
Data STRING(512)
. .
FREE(URLQueue)
DQ:FullPath = 'C:\Documents and Settings\<WindowsUserName>\Favorites\'
ADD(DirQueue)
LOC:Counter = 0
LOOP
LOC:Counter += 1
GET(DirQueue, LOC:Counter)
IF ERRORCODE() THEN BREAK.
LOC:Path = DQ:FullPath
FREE(FileQueue)
DIRECTORY(FileQueue, CLIP(LOC:Path) & '*.*', ff_:Normal+ff_:DIRECTORY)
LOC:Inner = 0
LOOP
LOC:Inner += 1
GET(FileQueue, LOC:Inner)
IF ERRORCODE() THEN BREAK.
IF BAND(FQ:Attrib,ff_:DIRECTORY) AND FQ:ShortName <> '..' AND FQ:ShortName <> '.'
DQ:FullPath = CLIP(LOC:Path) & CLIP(FQ:Name) & '\'
ADD(DirQueue)
ELSE
LOC:ASCFileName = CLIP(LOC:Path) & CLIP(FQ:Name)
CLOSE(ASCFile)
OPEN(ASCFile,40H)
IF ERRORCODE()
ELSE
SET(ASCFile)
LOOP
NEXT(ASCFile)
IF ERRORCODE() THEN BREAK.
IF SUB(ASC:Data,1,4) = 'URL='
CLEAR(URLQueue)
URL:Name = FQ:FileName
URL:Link = SUB(ASC:Data,5,LEN(CLIP(ASC:Data))-4)
ADD(URLQueue)
BREAK
END
END
CLOSE(ASCFile)
END
END
END
END