Français
Source/ Codesnippets

Kölner Phonetik Soundex cherche

 

Michael
W.
la fois so un un peu Phonetik en supplément...
KompilierenMarqueSéparation
' phonetische Suche
' - Soundex
' - Kölner Phonetik
' XProfan X2

Proc Soundex

    Parameters String Wort
    Declare String c,d,e
    Var String erg = ""
    Wort = Upper$(Wort)
    Wort = Translate$(Wort,"ß","S")
    c = "" : d = "" : e = ""

    WhileLoop Len(Wort)

        Case InStr(Mid$(Wort,&loop,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZß") : c = c + Mid$(Wort,&loop,1)

    EndWhile

    Wort = c

    If Len(Wort) = 1

        erg = Wort

    ElseIf Len(Wort) > 1

        erg = Left$(Wort,1)

        WhileLoop 2,Len(Wort)

            c = Mid$(Wort,&loop,1)

            If InStr(c,"BFPV")

                d = "1"

            ElseIf InStr(c,"CGJKQSXZ")

                d = "2"

            ElseIf InStr(c,"DT")

                d = "3"

            ElseIf InStr(c,"L")

                d = "4"

            ElseIf InStr(c,"MN")

                d = "5"

            ElseIf InStr(c,"R")

                d = "6"

            EndIf

            If d <> e

                erg = erg + d
                e = d

            EndIf

            Case Len(erg) >= 4 : BREAK

        EndWhile

    EndIf

    erg = Left$(erg + "0000",4)
    Return erg

EndProc

Proc KPhon

    Parameters String Wort
    Declare String c,Pre,Post, Long WPos,WLen, i
    Var String erg = ""

    If Len(Wort) > 0

        c = ""
        Wort = Upper$(Wort)

        WhileLoop Len(Wort)

            Case InStr(Mid$(Wort,&loop,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜß") : c = c + Mid$(Wort,&loop,1)

        EndWhile

        Wort = c

    EndIf

    If Len(Wort) > 0

        WLen = Len(Wort)

        WhileLoop WLen

            Pre  = if(&loop > 1,Mid$(Wort,&loop - 1,1),"")
            c    = Mid$(Wort,&loop,1)
            Post = if(&loop < WLen,Mid$(Wort,&loop + 1,1),"")

            If InStr(c,"AEIJOUYÄÖÜ")

                erg = erg + "0"

            ElseIf c = "H"

                'ignore

            ElseIf (c = "B") or ((c = "P") and (Post <> "H"))

                erg = erg + "1"

            ElseIf InStr(c,"DT") and not(InStr(Post,"CSZ"))

                erg = erg + "2"

            ElseIf InStr(c,"FVW") or ((c = "P") and (Post = "H"))

                erg = erg + "3"

            ElseIf InStr(c,"GKQ")

                erg = erg + "4"

            ElseIf (c = "C") and (InStr(Post,"AHKLOQRUX")) and (&loop = 0)

                erg = erg + "4"

            ElseIf (c = "C") and (InStr(Post,"AHKOQUX")) and not(InStr(Pre,"SZ"))

                erg = erg + "4"

            ElseIf (c = "X") and not(InStr(Pre,"CKQ"))

                erg = erg + "48"

            ElseIf (c = "L")

                erg = erg + "5"

            ElseIf InStr(c,"MN")

                erg = erg + "6"

            ElseIf (c = "R")

                erg = erg + "7"

            ElseIf InStr(c,"SZß")

                erg = erg + "8"

            ElseIf (c = "C") and (InStr(Pre,"SZ"))

                erg = erg + "8"

            ElseIf (c = "C") and Not(InStr(Post,"AHKLOQRUX")) and (&loop = 0)

                erg = erg + "8"

            ElseIf (c = "C") and Not(InStr(Post,"AHKOQUX"))

                erg = erg + "8"

            ElseIf InStr(c,"DT") and (InStr(Post,"CSZ"))

                erg = erg + "8"

            ElseIf (c = "X") and (InStr(Pre,"CKQ"))

                erg = erg + "8"

            Else

                'Fehler

            EndIf

        EndWhile

        ' jetzt erg ausdünnen
        i = Len(erg)

        While i > 1

            c = Mid$(erg,i,1)
            Case (c = Mid$(erg,i - 1,1)) or (c = "0") : erg = Del$(erg,i,1)
            Dec i

        EndWhile

    EndIf

    Return erg

EndProc

proc x

    parameters string s
    print s,"=",KPhon(s),"--",Soundex(s)

endproc

Cls
x("Wikipedia")
x("Breschnew")
x("Müller-Lüdenscheidt")
x("Meier")
x("Maier")
x("Mayer")
x("Mayr")
x("Haus")
x("Maus")
x("frisch")
x("Fisch")
x("Waage")
x("wiegen")
x("Britney")
x("Spears")
x("bewährten")
xass=s2>("Superzicke")
waitkey
end
 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
28.12.2014  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

3.809 Views

Untitledvor 0 min.
p.specht05.06.2022
Walter05.06.2022
Uwe Lang20.11.2021
Manfred Barei19.11.2021
plus...

Themeninformationen

cet Thema hat 1 participant:

Michael W. (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie