Källkoden för /anders.enges/vb/vbtips8.asp
<!--#include file="../inc/navstuff.asp" -->
Används för att jämföra ord. Inte efter hur de skrivs utan efter HUR DE LÅTER.<br>
<br>
Användning:<br>
<br>
Namn1 och Namn2 antas innhålla t.ex. personnamn<br>
Soundex(Namn1) = Soundex(Namn2)<br>
ger <B>True</B> om namnen är Smith och Smyte<br>
ger <B>True</B> om namnen är Christer och Krister<br>
ger <B>False</B> om namnen är Karin och Krister<br>
ger <B>True</B> om orden är Banan och Panaani<br>
ger <B>False</B> om orden är Banan och Pataani<br>
<br>
<div class=code>
   <p>Function Soundex (ByVal sText)<br>
        Dim sOrd As String<br>
        Dim sNummer As String<br>
        Dim sSdx As String<br>
        Dim sAktuell As String<br>
        Dim sFörraAs String<br>
        Dim iVarv As Integer<br>
        Dim sTecken As Integer<br>
        Dim iAscii As Integer<br>
     <br>
        sOrd = UCase(sText)    ' bara stora bokstäver<br>
        sNummer = "01230120022455012623010202"   '
     SOUNDEX tabell <br>
                    '
     se till att ni skriver in den rätt!!!!<br>
        ' Egentligen säger SOUNDEX algoritmen att det skall<br />
        ' vara som nedan<br>
        ' sSdx = Left(sOrd, 1)   ' Starta med första
     tecknet<br>
        ' For iVarv = 2 To Len(sOrd)   ' Loopa igenom
     resten av strängen<br>
        ' ...<br>
        ' Men om det första tecknet är tex Å fungerar följande<br />
        ' variant mycket bättre<br>
        sSdx = ""    ' Starta med ingenting<br>
        For iVarv = 1 To Len(sOrd)   ' Loopa igenom
     strängen<br>
           sTecken = Mid(sOrd, iVarv, 1)   '
     tag ett tecken<br />
           ' konvertera ASCII värdet till SOUNDEX
     tabellenindex <br>
           iAscii = Asc(sTecken) - 64   <br>
           If iAscii >= 1 And iAscii <= 26
     Then ' acceptera endast tecken<br />
             ' slå upp det i SOUNDEX tabellen <br>
              sAktuell = Mid(sNummer,
     iAscii, 1) <br>
              If sAktuell <>
     sFörra And sAktuell <> "0" Then <br>
                 '
     om olika och inte specialtecken<br>
                 sFörra
     = sAktuell ' spara förra värdet<br>
                 sSdx
     = sSdx + sAktuell ' bygg upp resultatsträngen<br>
              End If<br>
           End If<br>
        Next Varv<br>
        ' Se till att vi får fyra tecken totalt.<br>
        Soundex = Left(sSdx + "0000", 4)<br>
     End Function<br>
   </p>
   </div>
<!--#include file="../inc/footer.asp" -->