Avatar billede bobbedude Nybegynder
19. juli 2009 - 14:54 Der er 1 løsning

gør keywords til link - soter array efter længde på ord

'-------------------------------------------------------------------------------------------------------------
'CONSTANTS
WORD_CHARS_U    = "ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ"
WORD_CHARS_L    = "abcdefghijklmnopqrstuvwxyzæøå"
NUMERIC_CHARS    = "1234567890"
WORD_CHARS      = WORD_CHARS_U&WORD_CHARS_L&NUMERIC_CHARS
WORD_CHARS_LEN  = len(WORD_CHARS)

'-------------------------------------------------------------------------------------------------------------
'VARIABLES
fSeparator    = ","
fWordArr      = split(ArrOfWords,fSeparator) 'SKAL VÆRE LCASE...

'-------------------------------------------------------------------------------------------------------------
'FUNCTIONS

function isWordChar(aCh)%><%isWordChar=true
for c=1 to WORD_CHARS_LEN
  if aCh=mid(WORD_CHARS,c,1) then exit function
next%><%isWordChar=false
end function

function inWrdArr(aWrd)%><%inWrdArr=true
for c=lBound(fWordArr) to uBound(fWordArr)
  if aWrd=fWordArr(c) then exit function
next%><%inWrdArr=false
end function


function inWrdArrLike(aWrd)%><%inWrdArrLike=true
for c=lBound(fWordArr) to uBound(fWordArr)
  aItm=fWordArr(c)
  if (aWrd=left(aItm,len(aWrd))) and (aWrd<>aItm) then exit function
next%><%inWrdArrLike=false
end function


function highlightText(aText)
aLen=len(aText)%><%result=true%><%aWrd=""
if aLen<1 then exit function
for i=1 to aLen%><%ch=mid(aText,i,1)
  if isWordChar(ch) then%><%aWrd=aWrd&ch%><%else
  if aWrd<>"" then%><%lcWrd=lCase(aWrd)
   
    if inWrdArr(lcWrd) then
 
%><a href="#" title="<%=aWrd%>">[<a title="<%=aWrd%>" href="http://www.killmyday.com/default.asp?Keyword=<%=aWrd%>&Search=go"><%=aWrd%></a>]</a><%aWrd=""
    else
    if inWrdArrLike(lcWrd) then%><%aWrd=aWrd&ch%><%else%><%=aWrd%><%aWrd=""%><%end if
    end if

  end if%><%=ch%><%
  end if
next%><%=aWrd%><%
end function

'-------------------------------------------------------------------------------------------------------------
'TESTING

aText = sContent

PrintText = highlightText(aText)


Overstående kode spiller ikke helt da den ikke kan finde ud af hvis 2 ord udgør et keyword, så jeg tænkte om man ikke bare kunne smide alle keywords ind i et array og så soter dem efter længde og så lave en simpel if instr(sContent,keyword(i)) then replace(keyword(i),"detderskalreplace") end if.

Hvordan soter man et array efter længden på de ord der er i den ?
Avatar billede bobbedude Nybegynder
03. november 2009 - 08:53 #1
luk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester