Salut !
Je me suis acharner a crée ce petit code sympathique qui permet simplement de donner le mot le plus proche du votre
je trouve sa ingénieux mais simple et pourtant j'ai ramer a le mettre au point car sa marchais pas comme je voulais
Code:
mot$ = "entipathique"
base_de_donner$ = "Anticonstitutionnellement, entité, encombrer, cambrement, antipat, banjo, emcombrera, encombrerais, combattre, Encombrement, ambre, bande, imbriquée, antipathique, bonjour, enfoncer, concombre, bando."
mot$ = RTrim(mot$)
mot$ = LCase(mot$)
base_de_donner$ = RTrim(base_de_donner$)
base_de_donner$ = LCase(base_de_donner$)
position_exraction = 0
numero_mot_base_de_donner = 0
NewList mot_au_caractere_simillaire.s()
Repeat
position_exraction + 1
caractere$ = Mid(base_de_donner$, position_exraction, 1)
If caractere$ = "," Or caractere$ = "."
position_exraction + 1
position_exraction_mot = 0
position_extraction_mot_base_de_donner = 0
caractere_simillaire = 0
numero_mot_base_de_donner + 1
longueur_mot = Len(mot$)
longueur_extraction_mot_base_de_donner = Len(extraction_mot_base_de_donner$)
Repeat
position_exraction_mot + 1
caractere_mot$ = Mid(mot$, position_exraction_mot, 1)
position_extraction_mot_base_de_donner + 1
caractere_extraction_mot_base_de_donner$ = Mid(extraction_mot_base_de_donner$, position_extraction_mot_base_de_donner, 1)
If caractere_mot$ = caractere_extraction_mot_base_de_donner$ And caractere_mot$ <> "" And caractere_extraction_mot_base_de_donner$ <> ""
caractere_simillaire + 1
ElseIf caractere_mot$ = "" Or caractere_extraction_mot_base_de_donner$ = ""
LastElement(mot_au_caractere_simillaire())
AddElement(mot_au_caractere_simillaire())
mot_au_caractere_simillaire() = Str(caractere_simillaire) + "," + extraction_mot_base_de_donner$
Break
EndIf
ForEver
extraction_mot_base_de_donner$ = ""
Else
If caractere$= ""
Break
Else
extraction_mot_base_de_donner$ + caractere$
EndIf
EndIf
ForEver
FirstElement(mot_au_caractere_simillaire())
ForEach mot_au_caractere_simillaire()
element + 1
If Val(mot_au_caractere_simillaire()) > nombre
nombre = Val(mot_au_caractere_simillaire())
element_base_de_donner = element
mot_simillaire$ = mot_au_caractere_simillaire()
EndIf
Next mot_au_caractere_simillaire()
Debug "Le mot le plus proche du votre est " + Chr(34) + Mid(mot_simillaire$, FindString(mot_simillaire$, ",", 1) + 1) + Chr(34)
amélioration:
Code:
mot$ = "banjour"
base_de_donner$ = "Anticonstitutionnellement, entité, encombrer, cambrement, antipat, banjo, emcombrera, encombrerais, combattre, Encombrement, ambre, bande, imbriquée, antipathique, bonjour, enfoncer, concombre, bando."
mot$ = RTrim(mot$)
mot$ = LCase(mot$)
base_de_donner$ = RTrim(base_de_donner$)
base_de_donner$ = LCase(base_de_donner$)
mot$ = RemoveString(mot$, "a")
mot$ = RemoveString(mot$, "e")
mot$ = RemoveString(mot$, "i")
mot$ = RemoveString(mot$, "o")
mot$ = RemoveString(mot$, "u")
mot$ = RemoveString(mot$, "y")
mot$ = RemoveString(mot$, "h")
mot$ = RemoveString(mot$, "ç")
position_exraction = 0
numero_mot_base_de_donner = 0
NewList mot_au_caractere_simillaire.s()
Repeat
position_exraction + 1
caractere$ = Mid(base_de_donner$, position_exraction, 1)
If caractere$ = "," Or caractere$ = "."
position_exraction + 1
position_exraction_mot = 0
position_extraction_mot_base_de_donner = 0
caractere_simillaire = 0
numero_mot_base_de_donner + 1
longueur_mot = Len(mot$)
longueur_extraction_mot_base_de_donner = Len(extraction_mot_base_de_donner$)
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner$, "a")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "e")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "i")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "o")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "u")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "y")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ç")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "h")
Repeat
position_exraction_mot + 1
caractere_mot$ = Mid(mot$, position_exraction_mot, 1)
position_extraction_mot_base_de_donner + 1
caractere_extraction_mot_base_de_donner$ = Mid(extraction_mot_base_de_donner2$, position_extraction_mot_base_de_donner, 1)
If caractere_mot$ = caractere_extraction_mot_base_de_donner$ And caractere_mot$ <> "" And caractere_extraction_mot_base_de_donner$ <> ""
caractere_simillaire + 1
ElseIf caractere_mot$ = "" Or caractere_extraction_mot_base_de_donner$ = ""
LastElement(mot_au_caractere_simillaire())
AddElement(mot_au_caractere_simillaire())
mot_au_caractere_simillaire() = Str(caractere_simillaire) + "," + extraction_mot_base_de_donner$
Break
EndIf
ForEver
extraction_mot_base_de_donner$ = ""
Else
If caractere$= ""
Break
Else
extraction_mot_base_de_donner$ + caractere$
EndIf
EndIf
ForEver
FirstElement(mot_au_caractere_simillaire())
ForEach mot_au_caractere_simillaire()
element + 1
If Val(mot_au_caractere_simillaire()) > nombre
nombre = Val(mot_au_caractere_simillaire())
element_base_de_donner = element
mot_simillaire$ = mot_au_caractere_simillaire()
EndIf
Next mot_au_caractere_simillaire()
Debug "Le mot le plus proche du votre est " + Chr(34) + Mid(mot_simillaire$, FindString(mot_simillaire$, ",", 1) + 1) + Chr(34)
et la le dernier code
Code:
mot$ = "elefan"
base_de_donner$ = "Anticonstitutionnellement, entité, encombrer, éléphant, cambrement, antipat, banjo, emcombrera, encombrerais, combattre, Encombrement, ambre, bande, imbriquée, antipathique, bonjour, enfoncer, concombre, bando."
mot$ = RTrim(mot$)
mot$ = LCase(mot$)
base_de_donner$ = RTrim(base_de_donner$)
base_de_donner$ = LCase(base_de_donner$)
mot$ = RemoveString(mot$, "a")
mot$ = RemoveString(mot$, "à")
mot$ = RemoveString(mot$, "â")
mot$ = RemoveString(mot$, "e")
mot$ = RemoveString(mot$, "é")
mot$ = RemoveString(mot$, "è")
mot$ = RemoveString(mot$, "ê")
mot$ = RemoveString(mot$, "ë")
mot$ = RemoveString(mot$, "i")
mot$ = RemoveString(mot$, "î")
mot$ = RemoveString(mot$, "ï")
mot$ = RemoveString(mot$, "o")
mot$ = RemoveString(mot$, "ô")
mot$ = RemoveString(mot$, "ö")
mot$ = RemoveString(mot$, "u")
mot$ = RemoveString(mot$, "û")
mot$ = RemoveString(mot$, "ü")
mot$ = RemoveString(mot$, "h")
mot$ = ReplaceString(mot$, "ç", "s")
mot$ = ReplaceString(mot$, "w", "v")
mot$ = ReplaceString(mot$, "y", "ll")
mot$ = ReplaceString(mot$, "ÿ", "ll")
mot$ = ReplaceString(mot$, "ph", "f")
position_exraction = 0
numero_mot_base_de_donner = 0
NewList mot_au_caractere_simillaire.s()
Repeat
position_exraction + 1
caractere$ = Mid(base_de_donner$, position_exraction, 1)
If caractere$ = "," Or caractere$ = "."
position_exraction + 1
position_exraction_mot = 0
position_extraction_mot_base_de_donner = 0
caractere_simillaire = 0
numero_mot_base_de_donner + 1
longueur_mot = Len(mot$)
longueur_extraction_mot_base_de_donner = Len(extraction_mot_base_de_donner$)
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner$, "a")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "à")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "â")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "e")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "é")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "è")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ê")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ë")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "i")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "î")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ï")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "o")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ô")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ö")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "u")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "û")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "ü")
extraction_mot_base_de_donner2$ = RemoveString(extraction_mot_base_de_donner2$, "h")
extraction_mot_base_de_donner2$ = ReplaceString(extraction_mot_base_de_donner2$, "ç", "s")
extraction_mot_base_de_donner2$ = ReplaceString(extraction_mot_base_de_donner2$, "w", "v")
extraction_mot_base_de_donner2$ = ReplaceString(extraction_mot_base_de_donner2$, "y", "ll")
extraction_mot_base_de_donner2$ = ReplaceString(extraction_mot_base_de_donner2$, "ÿ", "ll")
extraction_mot_base_de_donner2$ = ReplaceString(extraction_mot_base_de_donner2$, "ph", "f")
Repeat
position_exraction_mot + 1
caractere_mot$ = Mid(mot$, position_exraction_mot, 1)
position_extraction_mot_base_de_donner + 1
caractere_extraction_mot_base_de_donner$ = Mid(extraction_mot_base_de_donner2$, position_extraction_mot_base_de_donner, 1)
If caractere_mot$ = caractere_extraction_mot_base_de_donner$ And caractere_mot$ <> "" And caractere_extraction_mot_base_de_donner$ <> ""
caractere_simillaire + 1
ElseIf caractere_mot$ = "" Or caractere_extraction_mot_base_de_donner$ = ""
LastElement(mot_au_caractere_simillaire())
AddElement(mot_au_caractere_simillaire())
mot_au_caractere_simillaire() = Str(caractere_simillaire) + "," + extraction_mot_base_de_donner$
Break
EndIf
ForEver
extraction_mot_base_de_donner$ = ""
Else
If caractere$= ""
Break
Else
extraction_mot_base_de_donner$ + caractere$
EndIf
EndIf
ForEver
FirstElement(mot_au_caractere_simillaire())
ForEach mot_au_caractere_simillaire()
element + 1
If Val(mot_au_caractere_simillaire()) > nombre
nombre = Val(mot_au_caractere_simillaire())
element_base_de_donner = element
mot_simillaire$ = mot_au_caractere_simillaire()
EndIf
Next mot_au_caractere_simillaire()
Debug "Le mot le plus proche du votre est " + Chr(34) + Mid(mot_simillaire$, FindString(mot_simillaire$, ",", 1) + 1) + Chr(34)
[/code]