Nella realizzazione di un sito, dovevo realizzare una pagina per la ricerca di un termine nel database di un glossario.
Avevo quindi la necessità di evidenziare la parola trovata all'interno di un testo in seguito a tale ricerca ed ho scritto una funzione che evidenzia la parola cercata.
Poichè il testo deve essere visualizzato all'interno di una pagina html, per evidenziare la parola ho utilizzato questo codice:
<span style='background-color: rgb(128,0,0); color: rgb(255,255,255)'><B>testo da evidenziare</B></span>
Ecco in dettaglio il funzionamento di TxtInside:
1) txtSearch è la variabile che assumerà il valore corrispondente alla parola da cercare
2) txt è la variabile che conterrà il testo in cui cercare
3) txtInside è la variabile che conterrà il testo con i tag che evidenziano la parola cercata.
Il principio di funzionamento è il seguente:
1) si calcola la lunghezza del testo in cui cercare: len_txt=len(txt)
2) si calcola la lunghezza della parola da cercare: len_txtSearch = len(txtSearch) (quindi se la parola è 'mare' la variabile len_txtSearch = 4)
3) si crea un loop che 'scorre' tutta la frase alla ricerca della parola, il loop termina appena raggiunta la lunghezza massima della frase.
4) l'istruzione: txtExtracted = mid(txt,i,len_txtSearch) estrae da txt al variare di i tutte le stringhe di lunghezza len_txtSearch e le confronta con la parola cercata.
5) se la stringa in txtExtracted = txtSearch allora con l'istruzione: txtBefore = mid(txt, x, i-x) viene ricavata la stringa che precede.
6) se è stata effettivamente trovata la parola, allora la ricerca deve continuare dai caratteri che seguono questa parola, quindi ci si deve spostare in avanti di i+len_Search caratteri
7) in txtTemp viene memorizzata la somma delle stringhe txtBefore e txtEvid (il nostro testo con i tag html)
8) in txtInside ricorsivamente verranno uniti tutti i pezzi elaborati fino a ricreare l'intera frase di partenza.
Per usare la funzione è sufficiente richiamarla in questo modo (segue la funzione):
<% response.write TxtInside('prova', 'testo di prova per provare la funzione') Function TxtInside(txtSearch,txt) ' Restituisce un testo formattato html, evidenziando una determinata parola ' Autore: Paolo Pinto ' email: paolo.pinto@galactica.it Dim txtEvid Dim i Dim x Dim txtTemp Dim txtExtracted Dim len_txt Dim len_txtSearch txtEvid = "<span style='background-color: rgb(128,0,0); color: rgb(255,255,255)'><B>" & txtSearch & "</B></span>" len_txt=len(txt) len_txtSearch = len(txtSearch) i=1 x=1 txtInside = "" txtTemp = "" do while i< len_txt+1 txtExtracted = mid(txt,i,len_txtSearch) if ucase(txtExtracted) = ucase(txtSearch) then txtBefore = mid(txt, x, i-x) x=i+len_txtSearch txtTemp = txtBefore & txtEvid txtInside = txtInside & txtTemp end if i=i+1 loop txtInside = txtInside & right(txt,len_txt-x+1) if txtInside = "" then txtInside = txt end if end function %>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Eseguire script pre e post esecuzione di un workflow di GitHub
- Creare una libreria CSS universale: Cards
- Migliorare l'organizzazione delle risorse con Azure Policy