• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Ricerca interno RichTexbox Vb6

soldatino24

Nuovo utente
Autore del topic
1 Luglio 2017
8
4
Miglior risposta
0
Ho un problema nella ricerca di una parola all'interno di una RichTexbox Vb6:
quando faccio la ricerca di una parola all'interno di una RichTexbox questa non mi facesse distinzione tra lettere maiuscole o minuscole.
Ad es. se all'interno del testo è presente la parola "Pippo" ed io cerco "pippo" la deve trovare ugualmente, ecco il codice:

par = Text1
i = InStr(RTxt1.Text, par)
RTxt1.SelStart = i - 1
RTxt1.SelLength = Len(par)
 
Ho un problema nella ricerca di una parola all'interno di una RichTexbox Vb6:
quando faccio la ricerca di una parola all'interno di una RichTexbox questa non mi facesse distinzione tra lettere maiuscole o minuscole.
Ad es. se all'interno del testo è presente la parola "Pippo" ed io cerco "pippo" la deve trovare ugualmente, ecco il codice:

par = Text1
i = InStr(RTxt1.Text, par)
RTxt1.SelStart = i - 1
RTxt1.SelLength = Len(par)

InStr ha come 3 parametro un comparatore : Optional ByVal Compare As CompareMethod
Per tanto il codice diventa
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Un consiglio personale , il vb6 è stato abbandonato da tempo da microsoft e quello che era il suo vecchio modello "com" è stato riadattato e ottimizzato sul net.
Per tanto ti consiglio di passare al vb.net
 
InStr ha come 3 parametro un comparatore : Optional ByVal Compare As CompareMethod
Per tanto il codice diventa
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Un consiglio personale , il vb6 è stato abbandonato da tempo da microsoft e quello che era il suo vecchio modello "com" è stato riadattato e ottimizzato sul net.
Per tanto ti consiglio di passare al vb.net

Mi
InStr ha come 3 parametro un comparatore : Optional ByVal Compare As CompareMethod
Per tanto il codice diventa
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Un consiglio personale , il vb6 è stato abbandonato da tempo da microsoft e quello che era il suo vecchio modello "com" è stato riadattato e ottimizzato sul net.
Per tanto ti consiglio di passare al vb.net

Ciao, secondo il codice seguente se scrivo l'inizio di una parola e clicco più di una volta sul pulsante si edidenzia tutta la parola, cioè se scrivo "pi" e premo più volte mi evidenzia "pippo"....
....
str = txt_cerca

Dim I As Integer
I = 1
Do
if txt_cerca.text= "autore"
I = InStr(I, txt_autore.Text, str, vbTextCompare) - 1
If (I < 0) Then Exit Do
txt_autore.SelStart = I
txt_autore.SelLength = Len(str)
txt_autore.SelBold = True
txt_autore.SelColor = vbRed
I = I + 2
end if
Loop
 
Mi


Ciao, secondo il codice seguente se scrivo l'inizio di una parola e clicco più di una volta sul pulsante si edidenzia tutta la parola, cioè se scrivo "pi" e premo più volte mi evidenzia "pippo"....
....
str = txt_cerca

Dim I As Integer
I = 1
Do
if txt_cerca.text= "autore"
I = InStr(I, txt_autore.Text, str, vbTextCompare) - 1
If (I < 0) Then Exit Do
txt_autore.SelStart = I
txt_autore.SelLength = Len(str)
txt_autore.SelBold = True
txt_autore.SelColor = vbRed
I = I + 2
end if
Loop


Semplicemente perchè avanzi di due caratteri per volta
nel primo caso se è pi , trova l'occorrenza e continua a selezionare per tutta la lunghezza della parola. (+2)
Al ciclo successivo trova di nuovo la parola e seleziona per tutta la lunghezza della parola.
Inoltre c'è un errore di sintassi (manca il then).
Non so cosa tu voglia realizzare esattamente , quindi oltre che evidenziarti l'errore logico non posso dirti altro.
 
Semplicemente perchè avanzi di due caratteri per volta
nel primo caso se è pi , trova l'occorrenza e continua a selezionare per tutta la lunghezza della parola. (+2)
Al ciclo successivo trova di nuovo la parola e seleziona per tutta la lunghezza della parola.
Inoltre c'è un errore di sintassi (manca il then).
Non so cosa tu voglia realizzare esattamente , quindi oltre che evidenziarti l'errore logico non posso dirti altro.

Ho provato a correggere l'errore come mi hai detto, ma nulla... se mi dai una mano scrivendomi il codice funzionante mi faresti un gran favore, grazie e buona serata.
 
Ho provato a correggere l'errore come mi hai detto, ma nulla... se mi dai una mano scrivendomi il codice funzionante mi faresti un gran favore, grazie e buona serata.
Spiegami esattamente cosa vuoi fare e perché hai messo un ciclo per una ricerca?


Inviato dal mio SM-J510FN utilizzando Tapatalk
 
Spiegami esattamente cosa vuoi fare e perché hai messo un ciclo per una ricerca?


Inviato dal mio SM-J510FN utilizzando Tapatalk

Praticamente ho una textbox dove metto una parola da ricercare in un testo inserito in una textbox. Le condizioni sono quelle di ricercare tutte le parole, indipendentemente se scritte in maiuscola o minuscola, che si trovano nel testo della RichTextBox ed edidenziarle in grassetto e di colore rosso....
Ad es. se nella textbox metto la parola "pippo", nel tessto della RichTextBox mi deve evidenziare tutte le parole contenenti "pippo" o "Pippo" o "piPpo" e così via....
 
Praticamente ho una textbox dove metto una parola da ricercare in un testo inserito in una textbox. Le condizioni sono quelle di ricercare tutte le parole, indipendentemente se scritte in maiuscola o minuscola, che si trovano nel testo della RichTextBox ed edidenziarle in grassetto e di colore rosso....
Ad es. se nella textbox metto la parola "pippo", nel tessto della RichTextBox mi deve evidenziare tutte le parole contenenti "pippo" o "Pippo" o "piPpo" e così via....

ok allora :
-devi estrapolare le parole della lunghezza pari al testo cercato (definiamolo come n) , non considerando gli spazi e altri caratteri che non siano testo
- usi Instr partendo lunghezza attuale fino alla lunghezza +n [Per quanto riguarda il formato del testo mi sembra che tu avessi risolto con il comparatore Text?]
- ripetere ciclicamente la cosa , fino alla fine del testo
 
Ultima modifica: