Torna indietro   Hardware Upgrade Forum > Software > Programmazione

BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia
Sony Xperia 1 VII propone un design sobrio e funzionale, con un comparto fotografico di ottimo livello caratterizzato da uno zoom continuo e prestazioni generali da top di gamma puro. Viene proposto con una personalizzazione software sobria e affidabile, ma presenta qualche criticità sul fronte ricarica rapida. Il dispositivo punta su continuità stilistica e miglioramenti mirati, rivolgendosi al solito pubblico specifico del brand giapponese.
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Poco F7 5G, smartphone che punta molto sulle prestazioni grazie al processore Snapdragon 8s Gen 4 e a un display AMOLED da ben 6,83 pollici. La casa cinese mantiene la tradizione della serie F offrendo specifiche tecniche di alto livello a un prezzo competitivo, con una batteria generosissima da 6500 mAh e ricarica rapida a 90W che possono fare la differenza per gli utenti più esigenti.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-11-2009, 11:52   #1
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
[SQL + ASP] Ricerca caratteri accentati

Ciao raga,

ormai sono un paio di giorni che sbatto la testa contro questo problema senza giungere ad una soluzione

In pratica ho la necessità di effettuare delel query SQL per ricercare dei testi, con la possibilità però di effettuare ricerche anche per testo contententi caratteri accentati

Esempio
se ricerco la parola "cioe" => devo avere come risultati tutti i testi contenenti => "cioè" "cioé" "cioe"

Ho il cervello in pappa... sarà che sono mezzo influenzato, ma davvero nn ci arrivo.

Vi ringrazio, ciao!

Ultima modifica di SerMagnus : 03-11-2009 alle 12:25.
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2009, 12:17   #2
kurts
Senior Member
 
L'Avatar di kurts
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
scusa la domanda che magari può sembrare stupida, ma tra i possibili risultati dovrebbero essere comprese anche eventualu parole (errori di battitura, ok) come "cìoe", "cìoè" e "cìoé"?? (notare la i accentata)
e magari anche le lettere apostrofate (che solitamente usano gli utenti con tastiera inglese) in sostituzione di quelle accentate?

un'altra domanda, tutto questo lo vuoi fare utilizzando semplicemente l'SQL perchè magari scrivi le query a mano oppure ti va bene anche il PHP o altri linguaggi di programmazione per generare le query?
kurts è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2009, 12:24   #3
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
ciao kurts grazie dell'interessamento

per la prima domanda la risposta è SI, il senso è che lo scopo è appunto trovare anche i risultati della ricerca includendo tutte le variazioni accentante del testo. è come se mi servisse una normalizzazione del testo all'inverso, lo so è una richiesta strana in cui non mi sono mai imbattuto.

per l'altra domanda, attualmetne sto sviluppando in ASP, quindi sto pure con DB ACCESS (non ditemi nulla ), ma pensavo si potesse risolvere solo con query SQL,
cmq modificare le query nn è un problema, il punto è capire il come perchè sincermamente non so proprio da dove partire per venire a capo di questo problema

attualmente mi sono fermato alla classica ...LIKE '%termini%'

Ultima modifica di SerMagnus : 03-11-2009 alle 12:28.
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2009, 12:41   #4
kurts
Senior Member
 
L'Avatar di kurts
 
Iscritto dal: Oct 2009
Città: Varese
Messaggi: 307
quello che secondo me devi fare, e qui dovrai aspettare qualcuno che conosca l'ASP, è crearti una bella funzioncina che esamini la parola in input e ti generi n varianti della stessa che poi verranno usate per generare la query SQL che ti interessa (o anche più di una)

sempre parlando teoricamente, come dovrebbe essere questa funzione?
io direi che possiamo sistetizzarla così:
1-prende la parola in input
2-analizza la prima lettera (o la prossima)
3-IF trova una vocale allora genera le varie "mutazioni" (magari le metti in un array)
4-IF la parola NON è finita allora torniamo al punto 2
5-ELSE aggiungiamo all'array anche la parola originale
6-ti esamini passo-passo il contenuto dell'array e generi le tue n query

chiaramente il puntio 6 può essere modificato per fare in modo che la query generata sia una sola del tipo: cioè OR cioe OR cìoe OR ecc...

la parte LIKE '%termini%' va bene però potrebbe restituire molte volte la stessa frase nel caso in cui siano contenute più di una parola tra quelle cercate

Ultima modifica di kurts : 03-11-2009 alle 12:44.
kurts è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2009, 12:47   #5
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
wao grazie mille!

provo e ti faccio sapere
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 03-11-2009, 22:47   #6
sneeze
Senior Member
 
L'Avatar di sneeze
 
Iscritto dal: Aug 2001
Messaggi: 1049
parecchio tempo fa ho avuto il tuo stesso problema.....
semplicemente mi sono creato un metodino che data una string tornava un array con tutte le varianti. es
string a = "ciao";
string[] b = analizza(a);
selectCmd = "Select into ddd where ";
foreach(string caso in b)
{
selectCmd += "campo Like '"+caso+"' OR ";
}
selectCmd = selectCmd.substring(0,selectCmd.Lenght -3);

....................




private string[] analizza(string daAnalizzare)
{
List<String> risultato = new List<String>();
risultato.add(daAnalizzare);
risultato.add(daAnalizzare.Replace('a','à'));
risultato.add(daAnalizzare.Replace('o','ò'));
.................
return risultato.ToArray();
}
sneeze è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 10:38   #7
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
grazie mille sneeze, ieri nn ho avuto molto tempo per provare, ma oggi mi ci metto

grazie a tutti per l'aiuto!

cmq se avete altri consigli gradirei molto, anche perchè home ha fatto notare sneeze magari può servire anche ad altri. ciau!
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2009, 11:10   #8
SerMagnus
Senior Member
 
L'Avatar di SerMagnus
 
Iscritto dal: Sep 2005
Messaggi: 1400
mi era venuta la malsana idea di operare in questo modo:

1) faccio un fetch di tutti in dati nel db
2) elaboro ogni riga con una funzione che elimina tutti i caratteri speciali e converte le lettere accentate nelle rispettive versioni non accentate (tipo la funzione analizza si sneeze)
3) salvo tutto in una view temporanea
4) effettu la ricerca nella view
5) salvo i risultati
6) elimino la view

lo so è uno preco di risorse e tempo, però in questo modo posso considerare anche casi più complessi di semplici vocali, tipo le consonanti e altro.

certo sarebbe più facile lavorare con i trigger, ma sto in Classic ASP con DB Access


che ne dite?

Ultima modifica di SerMagnus : 04-11-2009 alle 11:16.
SerMagnus è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2009, 10:09   #9
sneeze
Senior Member
 
L'Avatar di sneeze
 
Iscritto dal: Aug 2001
Messaggi: 1049
può essere una idea.... purtroppo il vero problema in questi casi è che, a mia conoscenza, non esiste una funzione sql che elimini accenti e lettere speciali altrimenti sarebbe una stupidata fare una select utilizzando tale funzione, un pò come utilizzare un UPPER.
io al mio tempo risolsi con un metodo tipo quello che ho postato, non dubito che il tuo possa anche essere migliore per risultato finale ottenuto, temo però che se i dati che hai sono molti tu possa avere un enorme spreco di risorse e un disastroso calo delle prestazioni, oltretutto essendo il db access e nemmeno un sql server già in quanto a prestazioni non sei messo benissimo....

però un tentativo ne vale la pena, dovesse essere una valida soluzione ti prego di postarla per tutti perchè è un argomento che ricorre spesso
sneeze è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
DJI OSMO Mobile SE a 69€: il gimbal comp...
Scope elettriche da record su Amazon: du...
GTA 6 a 80 euro? Take-Two frena sul prez...
I 3 portatili più convenienti su ...
AirPods Pro 2 a soli 199€: su Amazon anc...
2 Smart TV 4K Hisense con doppio sconto ...
Portatili Apple ai minimi: MacBook Pro c...
Come mantenere Windows 10 sicuro dopo il...
Finalmente è tornato su Amazon l'...
Auto nuove? Per il 65% degli italiani so...
Droni solari Airbus volano nella stratos...
Colpo da 15 milioni di dollari: chi ha r...
Elon Musk lancia l'allarme su GPT-5: 'Op...
iPhone 17 Pro sarà più cos...
Leapmotor spinge sull'acceleratore: nuov...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:55.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v