Newsgroup: it.comp.lang.visual-basic
Titolo: [!] Database delle parole italiane

Ciao!! Dopo alcune ricerche di sabato e domenica, ho creato un db in Access
contenente 245.012 parole italiane. Per ogni parola ho messo anche la sua
firma (chi ha preso e letto IoProgrammo di febbraio probabilmente sa di cosa
sto parlando).
L'ho messo sul mio sito e può essere scaricato da:
http://www.igordamiani.it/Download/Vocabolario.zip
(poco più di 2Mb zippato)
Grazie a chi mi ha aiutato (Andrea Palazzi in primis)
Good Coding!!!
--
Damiani Liborio Igor
ig...@igordamiani.it
 - 
dam...@italiainfiera.it
 - 
idam...@hotmail.com
http://www.igordamiani.it
ICQ : 11847262

 Grazie a chi mi ha aiutato (Andrea Palazzi in primis)
Grazie a voi.

 Grazie a voi.
io non ho fatto niente, ha fatto tutto ed e' da ringraziare solo igor.
io ho solo aperto ora l'mdb convertendolo in access97 (20% in meno :)
igor, una domanda, anzi due: qual e' l'algoritmo per la firma, e come
la usi tu ?
grazie

 sto parlando).
Ha l'aria di qualcosa che mi puň interessare :-), vedi il mio post
"Ricerca full text su gruppi di files". Mi dai qualche particolare in
piů, cosě se č il caso vado a comprare la rivista ?
Bye, G.

 sto parlando).
Hem
potrei chiederti di che si tratta?
Grazie

rispondo un po' a tutti con un solo post.
La firma è praticamente l'ordinamento alfabetico delle lettere di una data
parola.
La firma della parola GELATO è AEGLOT.
La firma della parola CAFFE è ACEFF.
Ovviamente bisogna prendere in considerazione anche le doppie, come appunto
nella parola CAFFE.
Da qui si deduce che tutte le parole con la stessa firma, sono parole
anagrammate fra di loro.
Per dire, la parola LEGATO ha come firma AEGLOT, che è la stessa firma di
GELATO.
Quindi, LEGATO e GELATO sono anagrammi fra di loro.
Anche "obliati", "aboliti" e "abilito" sono anagrammi, dato che la firma è
ABIILOT.
Su IoProgrammo che ho accennato prima, spiega inizialmente questo concetto,
poi va avanti e spiega come creare anagrammi di intere frasi. Per dire,
quanti anagrammi ha la frase:
IERI SONO ANDATO A GENOVA
Lo so che l'utilità è poca, però mi sono divertito a farlo, non si sa mai, a
qualcuno potrebbe servire......
Adesso posto l'algoritmo qui sotto, ok?
Grazie a tutti!!
Good coding!!!!


Ho creato un modulo dentro il db Access con questa funzione:
Public Function CreaFirma(ParolaTemp As String)
Dim Alfabeto(27) As Long
Dim i As Long
Dim Posiz As Long
CreaFirma = ""
For i = 1 To Len(ParolaTemp)
    Posiz = Asc(UCase$(Mid$(ParolaTemp, i, 1))) - 64
    If Posiz > 0 And Posiz < 27 Then
        Alfabeto(Posiz) = Alfabeto(Posiz) + 1
    Else
        Alfabeto(27) = Alfabeto(27) + 1
    End If
Next
For i = 1 To 26
    If Alfabeto(i) > 0 Then
        CreaFirma = CreaFirma & String$(Alfabeto(i), Chr$(i + 64))
    End If
Next
CreaFirma = LCase$(CreaFirma)
End Function
L'array da 27 elementi mi contiene, ad ogni posizione, quante volte compare
una certa lettera
Alfabeto(1) contiene le occorrenze della lettera A
Alfabeto(2) contiene le occorrenze della lettera B
e così via.....fino a....
Alfabeto(26) contiene le occorrenze della lettera Z
ho usato anche Alfabeto(27) per tenere traccia anche di eventuali caratteri
non validi per la generazione della firma, come trattini, punti ed altre
cose che ho deciso di ignorare.
Per creo la firma, passando tutto il vettore appena riempito e già ordinato,
prendendo in considerazione solamente gli elementi dell'array >0: vuol dire
che la lettera indicatami da quella posizione compare almeno una volta.
Poi, metto tutta la firma in minuscolo (perchè?!?!? Boh......non mi piaceva
vedere tutte le lettere "gridate" dentro il db :-))))
ciao a tutti!!!!


 piů, cosě se č il caso vado a comprare la rivista ?
-_- ti avevo mandato una mail a gaetano_d [AT] 
hotmail.com
 a riguardo !