String Replace caratteri speciali
molaskine
molaskine non è online. Ultima attività: 13/07/2009 15.48.41molaskine
il 10 luglio 2009 alle 11:02
4 messaggi dal 10 luglio 2009
Buongiorno,

ho creato una funzione che selezionate delle parole chiave le rintraccia all'interno di un testo e le evidenzia con un link al glossario.


public string applyGolss(string myString)
{
//trovo i dati nel glossario
GlossarioDb gdb = new GlossarioDb();
DataSet myGlossDb = gdb.getAllDataTerminiDb(false, 0, "myData");
int myCont = 0;
foreach (DataRow myR in myGlossDb.Tables["myData"].Rows)
{
//trovo l'id
string myId = myR["id_termine"].ToString();
string myhash = DateTime.Now.ToString().Replace(" ", "").Replace("/", "").Replace(".","");
myhash += myCont.ToString();
//trovo il termine
string myTermine = myR["termine_inserito"].ToString();
//trovo la spiega
string mySpiega = myR["spiegazione_termine"].ToString();

//vedo se è presente con la lettera maiuscola
string myTermineMaiuscolo = myTermine.Substring(0, 1).ToUpper() + myTermine.Substring(1);
myString = myString.Replace(" " + myTermineMaiuscolo , "<a href='glossario.aspx?idTer=" + myId + "' name='Glossario: " + myTermineMaiuscolo + "' > " + myTermineMaiuscolo + " </a>");

//vedo se è presente con la lettera minuscola
string myTermineMinuscolo = myTermine.Substring(0, 1).ToLower() + myTermine.Substring(1);
myString = myString.Replace(" " + myTermineMinuscolo , "<a href='glossario.aspx?idTer=" + myId + "' name='Glossario: " + myTermineMinuscolo + "'> " + myTermineMinuscolo + " </a>");


myTermine = "";
mySpiega = "";
myTermineMaiuscolo = "";
myTermineMinuscolo = "";

myCont++;
}
myGlossDb.Dispose();

return (myString);
}


Va tutto bene solo che se vengono inseriti dei caratteri speciali non funziona .
Avete qualche idea?

Grazie
Re: String Replace caratteri speciali
Daniele Bochicchio
Daniele Bochicchio non è online. Ultima attività: 09/02/2010 18.51.32Daniele Bochicchio Top Poster
il 10 luglio 2009 alle 14:51
molaskine wrote:
Va tutto bene solo che se vengono inseriti dei caratteri speciali non funziona .

di che caratteri speciali stai parlando?

Daniele Bochicchio (ASPItalia.com)
Il mio nuovo libro su Silverlight 3.0
Re: String Replace caratteri speciali
molaskine
molaskine non è online. Ultima attività: 13/07/2009 15.48.41molaskine
il 12 luglio 2009 alle 14:50
4 messaggi dal 10 luglio 2009
Quando si inseriscono òàèéìù ecc...

IN pratica se il termine è "meta" viene riconosciuto se è "metà" non viene riconosciuto
Modificato da molaskine il 12 luglio 2009 13.53 -
Re: String Replace caratteri speciali
Daniele Bochicchio
Daniele Bochicchio non è online. Ultima attività: 09/02/2010 18.51.32Daniele Bochicchio Top Poster
il 13 luglio 2009 alle 11:47
molaskine ha scritto:
Quando si inseriscono òàèéìù ecc...

IN pratica se il termine è "meta" viene riconosciuto se è "metà" non viene riconosciuto


ed è ultra-ovvio che sia così: il carattere a è diverso da à. volendo potresti scriverti una routine (o una regular expression) che consideri tutte le permutazioni, ma giustamente non c'è niente di pronto da utilizzare, perchè sono due caratteri diversi e come tali vanno usati.

Daniele Bochicchio (ASPItalia.com)
Il mio nuovo libro su Silverlight 3.0
Re: String Replace caratteri speciali
molaskine
molaskine non è online. Ultima attività: 13/07/2009 15.48.41molaskine
il 13 luglio 2009 alle 12:17
4 messaggi dal 10 luglio 2009
Scusami forse mi sono spiegato male.
In pratica con quella funzione se nel glossario veniva selezionato il termine "meta" e nel testo c'era "meta" il link veniva attivato, mentre se il termine era "metà" e all'interto del testo c'era "metà" il termina non veniva evidenziato.
Re: String Replace caratteri speciali
Daniele Bochicchio
Daniele Bochicchio non è online. Ultima attività: 09/02/2010 18.51.32Daniele Bochicchio Top Poster
il 13 luglio 2009 alle 12:53
molaskine wrote:
In pratica con quella funzione se nel glossario veniva selezionato il termine "meta" e nel testo c'era "meta" il link veniva attivato, mentre se il termine era "metà" e all'interto del testo c'era "metà" il termina non veniva evidenziato.

e sei sicuro che venga caricato correttamente il testo?
inoltre, vedo che tu utilizzi lo spazio e fai due replace, mentre invece sarebbe molto più semplice utilizzare una regexp in questi scenari, così da recuperare anche variazioni nel case.

Daniele Bochicchio (ASPItalia.com)
Il mio nuovo libro su Silverlight 3.0
Re: String Replace caratteri speciali
molaskine
molaskine non è online. Ultima attività: 13/07/2009 15.48.41molaskine
il 13 luglio 2009 alle 15:48
4 messaggi dal 10 luglio 2009
Lo so è colpa mia , ma devo ancora imparare bene a usare le RegExp.

Ora però vedo che più vado avanti più servono.

Per il momento questa lo risolta con una funzione che tramuta i caratteri speciali in unicode e così va.

Comunque faccio tesoro del consiglio e mi metto sotto a imparare le RegExp

Ti ringrazio per l'aiuto.

 

Torna al forum |   Feed RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
COMMUNITY
ULTIMI MESSAGGI
UTENTI ONLINE
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2010.2.8