Newsgroup: it.comp.appl.access
Titolo: Confronto stringhe

Qualcuno conosce una funzione di confronto complessa tra stringhe?
Mi spiego meglio.
Avrei bisogno di confrontare nomi di strade o di persone ed ottenere, nel 
caso non siano identici, una percentuale di uguaglianza.
Tale confronto potrebbe essere ottenuto con diverse sfumature (caratteri da 
scartare, limite di ricerca a destra o a sinistra dei 
caratteri/parole,ecc..)
es.: "PIAZZETTA MARISCOTTI" --"PIAZZETA MARISCOTTI" >>uguali al 95%
Grazie
Ciao e Buona Pasqua! 


Purtroppo le funzioni stringa non sono "INTELLIGENTI", e la
matematica, principio su cui si basano, non è un'opinione.
Ne consegue che le 2 stringhe sono diverse se confrontate in blocco.
Questo per dirti che dovrai costruirti un'algoritmo molto complesso
per fare quello che chiedi, effettuando un Confronto del singolo
carattere nella posizione equivalente.
La dove trovi in Posizione Uguale Carattere diverso incrementi il
counter di differenza.
Nel Tuo caso come vedi per una sola Lettera a metà "T" otterrai che le
2 stringhe non sono uguali per il 95% ma per il 40% in quanto
l'allineamento dopo il mancato raddoppio della "T" sfalsa tutto... e
come pensi di poter tenere conti di questo...?
Se ti mettessi a contare quante "A" e quante "B" ecc potresti dare la
possibilità di scrivere un Anagramma ed avere il 100% Match... cosa
assurda.
A mio avviso stai sottovalutando molto la cosa, spero non sia
veramente un'esigenza reale ma più frutto di un'errato approccio al
problema che peraltro non hai spiegato.
Saluti
@Alex

 ha scritto nel messaggio 
news:1176022590.3...@q75g2000hsh.googlegroups.com...





Saluti
@Alex
(Scusate outlook express non mi quota il messaggio!)
Purtroppo non sto sottovalutando il problema ....
L'esigenza è reale devo abbinare migliaia di clienti provenienti da sistemi 
diversi  solo se abitano e sono serviti nello stesso posto, ecc.
Ci sono molti programmi che fanno cose simili; ci vorerbbe qualcuno che 
abbia sviluppato una funzione utilizzabile in Access.
Aspettiamo e vediamo se qualcuno ci ha già sbattuto la testa.
Ciao 

 Ciao
Continui a non voler spiegare in modo chiaro il tuo problema ma solo a
dire quale soluzione vorresti.
In questo caso, è possibile che tu stia facendo un'errata
valutazione...
Vedi tu se vuoi concretamente esporre l'esigenza bene... altrimenti io
passo
@Alex

 ha scritto nel messaggio 
news:1176025071.3...@e65g2000hsc.googlegroups.com...



@Alex
... vediamo se mi spiego meglio e come potrebbe essere la funzione !
Function ConfrontaStringhe(Stringa1,Stringa2,Option1,Option2,Option3,....)
' Option1: S=confronto tra stringhe splittate, C=Confronto tra stringhe 
pulite (*)
' Option2: 1=Pulisci prima tutti i caratteri speciali ( Spazi,, ",", 
"'",...), 2=Pulisci solo gli spazi,....
' Option3: Nr caratteri che definisco una stringa (es: 5)
' Option4: Nr di caratteri di tollleranza nel confronto carattere x 
carattere (es 5=cerco stringa a +/- 5 di scostamento)
(*) es confronto tra stringhe (Split, con separtore spazio, delle singole 
stringhe e conto quante stringhe sono uguali nel secondo testo)
.........
Ciao 

 ha scritto nel messaggionews:1176025071.3...@e65g2000hsc.googlegroups.com...

Non voglio che mi spieghi la funzione, quella è l'ultimo dei problemi.
Voglio capire il problema alla base per non affrontarlo nel modo in
cui lo stai affrontando tu.
Il confronto deve servire per variare il punto di vista e non per
consolidare quello già appurato, che nel 80% dei casi può essere
errato.
Se mi consenti di ragionare sul problema per razionalizzarlo si può
fare, contrariamente se la tua strada è già tracciata devi solo
scriverti la funzione e fare del Debug, ed in questo non credo possa
servirti il NG.
@Alex

 ha scritto nel messaggio 
news:4618a7fc$0$10623$4faf...@reader2.news.tin.it...

Ciao
se non vado errato qualche tempo fa si è parlato in rete della tecnologia 
Soundex che potrebbe essere applicata ai database Access.
Questa tecnologia, perarltro free, crea un pattern per ogni stringa "letta" 
e ne propone un confronto con altre stringhe, restituendo un grado di 
similitudine.
Chissà se potrebbe fare al caso tuo.
Ciao, Carlo 

 ha scritto nel messaggio 
news:4618a7fc$0$10623$4faf...@reader2.news.tin.it...

Qualche spunto:
http://blogs.dotnethell.it/epomops/Testi-simili-e-fi_Simplify__5773.aspx
Ciao, Carlo 

 ha scritto nel messaggio 
news:evbhul$o14$1...@tdi.cu.mi.it...

GRAZIE !
Ho appena cominciato a guardare il sito ma mi pare un ottimo punto di 
partenza.
Buona Pasqua anche a te! :) 

 ha scritto nel messaggio 
news:evbhul$o14$1...@tdi.cu.mi.it...

Ecco il link alla funzione in VB per il calcolo della distanza di 
levenshtein
http://www.marcopipino.it/sql/levenshtein.php
Ciao 

 Ciao
Sei riuscito ad ottenere quello che cercavi?
Ciao, Carlo 

 ha scritto nel messaggio news:4618a7fc$0$10623$4faf...@reader2.news.tin.it...

Prova su: 
www.sitocomune.com
 - Sezione General
6.60 Informazioni sull'algoritmo Soundex.
Ciao.
-- 
Sergio MAZZA

 ha scritto nel messaggio 
news:evddhg$uul$1...@tdi.cu.mi.it...

Si Grazie.
Ho utilizzato la funzione per evidenziare un gruppo di indirizzi simili 
(l'algoritmo principale di ricerca è stato invece il nr civico di detti 
indirizzi).
Per i nomi delle persone potrebbe essere utile la funzione Soundex proposta 
da Sergio.
Grazie a tutti.
Ciao e buona serata.