hi,
`
`============================================
`BlueIDE 2 V2.0.22a
`Dark Basic Professional - Version 1.071
`============================================
`
`
`Main Source File
SET TEXT FONT "system",1
SET TEXT SIZE 20
root$=get_dbpro_install_path()+"\Help"
stopmess$=root$+CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10)+"not found!"
IF PATH EXIST(root$)=0 THEN EXIT PROMPT stopmess$,"STOP !" : END
f$=root$+"\index.htm"
`backup file:
bckup$=root$+"\original_index.htm"
IF FILE EXIST(f$)
IF FILE EXIST(bckup$)
PRINT "Restoration du fichier index original pour le tri"
DELETE FILE f$
COPY FILE bckup$,f$
ELSE
PRINT "Creation d'une sauvegarde du fichier index"
COPY FILE f$,bckup$
ENDIF
ELSE
PRINT "File not found !"
WAIT KEY
END
ENDIF
PRINT "tri en cours..."
`goto fini
DIM fil$(0)
search$=CHR$(34)+"#"+CHR$(34)
search2$="<a href="
OPEN TO READ 1,f$
l=0
REPEAT
INC l : READ STRING 1,s$
result=(FIND SUB STRING$(s$,search$)>0)
IF result THEN ligne=l
`on a trouvé le debut des keywords, on cherche a partir de cette ligne
IF ligne
`on s'assure que les ligne contiennent des keywords
result2=(FIND SUB STRING$(s$,search2$)>0)
IF result2
`memorise 1iere ligne pour le tri
Debut=l
WHILE result2=1
`extrait le keyword et le met au debut de la ligne
v$=extract(s$)
ADD TO QUEUE fil$(0)
fil$()=v$+s$
v$=""
INC l : READ STRING 1,s$
result2=(FIND SUB STRING$(s$,search2$)>0)
ENDWHILE
`memorise derniere ligne pour le tri
Fin=l-1
`tri
QuickSort(Debut, Fin)
`enleve le keyword du debut de ligne
FOR k=Debut TO Fin
result3=FIND SUB STRING$(fil$(k),"<")
tmp$=RIGHT$(fil$(k),LEN(fil$(k))-result3+1)
fil$(k)=tmp$
NEXT k
ENDIF
ENDIF
ADD TO QUEUE fil$(0)
fil$()=s$
UNTIL FILE END(1)
CLOSE FILE 1
fini:
PRINT
PRINT "Ecriture du nouveau fichier index..."
`remstart
DELETE FILE f$
OPEN TO WRITE 1,f$
FOR lec=1 TO ARRAY COUNT(fil$(0))
WRITE STRING 1,fil$(lec)
NEXT lec
CLOSE FILE 1
`remend
PRINT "Terminé !"
WAIT KEY
END
FUNCTION extract(ch$)
f=FIND LAST CHAR$(ch$,"<")
t$=LEFT$(ch$,f-1)
d=FIND FIRST char$(t$,">")
r$=RIGHT$(t$,LEN(t$)-d)+" "
ENDFUNCTION r$
FUNCTION QuickSort(Debut, Fin)
rem de Debut inclu à Fin inclu!
I = Debut
J = Fin
pivot$ = fil$((Debut+Fin)/2)
REPEAT
WHILE fil$(I)<pivot$
I=I+1
ENDWHILE
WHILE pivot$<fil$(J)
J=J-1
ENDWHILE
`
IF I<=J
swap$=fil$(I)
fil$(I)=fil$(J)
fil$(J)=swap$
I=I+1
J=J-1
ENDIF
UNTIL I>J
IF Debut<J THEN QuickSort(Debut, J)
IF I<Fin THEN QuickSort(I, Fin)
ENDFUNCTION
FUNCTION get_dbpro_install_path()
fn$="SOFTWARE\Dark Basic\Dark Basic Pro"
kn$="INSTALL-PATH"
ip$=GET REGISTRY$(fn$,kn$)
ENDFUNCTION ip$
AMD Athlon(tm)XP 3200+ (2.2GHz) / DDR pc3200 (1024Mo) / Nvidia 6800GT (driver 178.24 WHQL)/ XP Pro SP3 / DirectX 9.0c (march 2008)/ DBPro 7.1