oohh.... nu kommer der et der sletter ALLE! igen ALLE! www adresser: (Originalt af Dino Patti, Netcoder.dk)
---------------------------------------------
<%
\' ->AutoHighlight<-
\' Source lavet af Dino C. J. Patti - (C)Copyright 2000 :)
\' Dato: 22-06-2000
\' Netcoders -> Community ID = 662
\' E-mail: dino@nordmark.dk
\'
\' Denne sourcekode er lavet specielt til konkurrencen på
www.netcoders.dk\'
\' Sourcen er lidt lang, men den er ret flexibel, og der er ikke rigtig
\' noget af koden der kan undværes, men send gerne forslag til
\' forbedringer, optimeringer, mangler og fejl :) Eller anden respons.:)..
\'
\' Denne sourcekode må gerne bruges frit, dog ikke commercielt uden aftale.
Function autoHighlight(Lin)
\' Indstillinger -----
link_color = \"#3366ff\" \' Hvad farve skal linket have
link_target = \"_blank\" \' Link Target
ugyldigeTegn = \" _:\\,;/\'?\" \' Ugyldige tegn omkring punktummer
StartTegn = \" ,;\"\"<>!\" \' Tegn der starter et link fx. <H1>
www.spise.dk</H1> SlutTegn = \" ,;\"\"<>!\" \' Tegn der slutter et link fx.
www.partynet.dk! MaxDomain = 3 \' Max. tegn i domain navn fx \"com\" (3=default)
MaxLinks = -1 \' (Bruges til debug) Hvor mange links skal \"HighLight\"\'es per streng (-1 = uendelig)
Pointer = 1 \' Ved hvad tegn skal der startes (1=default)
\' Skal der chekes efter registrede domæner (1=ja & 0=nej)
RegON = 1
\' De registrede domæner:
RegDomain = \"dk;com;net;org;gov;edu;uk;no;se;de;as;ru;sk;ch;it;nl;fr;hu;to;au;tw;jp;\"
\' Indstillinger slut -----
\' Begynd løkke
Do until t = MaxLinks
\' Nulstilling af de variable:
NoLink = False \'True hvis det fundne tekst ikke er et link
TrueLink = False \'True hvis linket begynder med http://
Linkhtml = \"\"
PathStart = 0
PortStart = 0
PointerADD = 0
\' Her findes \"midten\" af linket
middle = Instr(pointer,lin,\".\")
temp = Instr(pointer,Lcase(lin),\"
http://\")
\' Dette sørger for at finde det første af enten \".\" eller \"
http://\"If temp < middle and temp <> 0 then middle = temp+6:TrueLink = true
If middle = 0 and temp > 0 then middle = temp+6:TrueLink = true
\' Hvis \".\" eller \"
http://\" ikke er fundet skal løkken stoppe
If Middle = 0 then exit do
\' Her findes starten af linket (defineret udfra start tegnene)
start = 1
For i = 1 to len(StartTegn)
temp = InStrRev(Lcase(lin),mid(StartTegn,i,1),Middle)
If temp => start and temp <> 0 then start = temp+1
next
\' Her findes slutningen af linket (defineret udfra slut tegnene)
slut = len(lin)
For i = 1 to len(SlutTegn)
temp = Instr(Middle,Lcase(lin),mid(SlutTegn,i,1))
If temp <= slut and temp <> 0 then slut = temp-1
next
\'Checker efter \"?\" og \".\" de må gerne stå i midten af linket, men ikke i slutningen
\' Fx. \"
www.nordmark.dk?????\" eller \"
www.partynet.dk...\" tegn = Mid(lin,slut,1)
do until (tegn <> \".\" and tegn <> \"?\") or slut = 1
If tegn = \".\" or tegn = \"?\" then slut=slut-1:PointerADD = PointerADD+1
tegn = Mid(lin,slut,1)
loop
\'Hvis det kun er et \".\" der er fundet og linket ikke begynder med http:// skal det testes ekstra
If TrueLink = False then
\' Her testes om punktummet står i starten eller i slutningen af strengen
If Middle = 1 then noLink = true:start=slut+1
If Middle = len(lin) then noLink = true:start=slut+1
\' Her testes efter ugyldige tegn, ved siden af punktummet
If nolink <> True then
TegnF = Mid(lin,middle-1,1)
TegnE = Mid(lin,middle+1,1)
For i = 1 to len(ugyldigeTegn)
If TegnF = mid(ugyldigeTegn,i,1) then noLink = true:start=slut+1:exit for
If TegnE = mid(ugyldigeTegn,i,1) then noLink = true:start=slut+1:exit for
next
end if
\' Her findes domæne navnet og længden chekes -> fx:\".dk\" \".com\" \".uk\"
\' De første if-sætningr checker om der er andet efter efter server navnet
\' som fx. port nr. eller en sti
If nolink <> True then
ServerSlut = Slut
temp = Instr(Middle,Lcase(lin),\"/\")
If temp <= ServerSlut and temp <> 0 then ServerSlut = temp-1:PathStart=Temp
temp = Instr(Middle,Lcase(lin),\":\")
If temp <= ServerSlut and temp <> 0 then ServerSlut = temp-1:PortStart=Temp+1
temp = InstrRev(lin,\".\",ServerSlut)
Domain = mid(Lcase(lin),temp+1,ServerSlut - temp)
Servername = mid(lin,start,ServerSlut-start+1)
If len(domain) > MaxDomain then noLink = true:start=slut+1 \'Max tegn
If len(domain) = 0 then noLink = true:start=slut+1 \'Udrydder fx.
www.spise./index.htm \'Checker efter steder i servernavnet hvor der er mere end et punktum
If Instr(Servername,\"..\") <> 0 then noLink = true:start=slut+1
end if
\' Her chekes, hvis RegON = 1, om domænenavnet er korrekt.
If RegON = 1 and nolink <> true then
RegDomains = split(Lcase(RegDomain),\";\")
nolink = true
For i = 0 to Ubound(RegDomains)
If RegDomains(i) = Domain then nolink = false:exit for
next
If nolink = true then start=slut+1
end if
else
\'Hvis der står \"
xxhttp://\", er det kun fra \"
http://\" der skal highlightes:)
start = Instr(pointer,Lcase(lin),\"
http://\")
End if
\'Dette er nogen af de ting der er mulige at spytte ud til hvert link:
\'Response.write \"---------------------<BR>\"
\'Response.write \"LinkNr: \"&t&\"<BR>\"
\'Response.write \"Starter ved tegn: \"&Start&\"<BR>\"
\'Response.write \"Slutter ved tegn: \"&Slut&\"<BR>\"
\'Response.write \"Domænenavn: \"&Domain&\"<BR>\"
\'Response.write \"Servernavn uden path: \"&ServerName&\"<BR>\"
\'If PathStart<>0 then Response.write \"Path efter servernavn: \"&mid(lin,pathStart,slut-pathstart+1)&\"<BR>\"
\'Hvis det fundne mulige link har bestået alle \"prøverne\" skal det udskiftes med html tags
If noLink <> True then
If Lcase(Mid(lin,start,7)) = \"\" then
LinkHtml = \"\"
else
LinkHtml = \"\"
End If
lin = Left(lin,start-1) & LinkHtml & right(lin,len(lin)-slut)
t=t+1
End If
\'Pointeren sættes til næste logiske start
pointer = start + len(LinkHtml)+PointerADD
loop
autoHighlight = lin
End function
%>
---------------------------------------------