|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2003
Città: Varese
Messaggi: 331
|
[vb6] Cercare parola in una txtbox...
Vorrei cercare un termine all'interno di una text box (magari una rich text box, che possiede il metodo "find") impostando una parola di inizio ricerca e una di fine, memorizzando poi ciò che ci sta in mezzo.
Esempio: "Ieri ho mangiato una mela, era buona." (stringa all'interno della txtbox). Parola1: "mangiato" Parola2: "," Risultato: " una mela" Spero di essere stato chiaro ![]() ciao. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
ti conviene nn utilizzare il metodo Find, almeno la Rich lo ha però magari se tu lo fai standard per tutti e lo metti sotto forma di funzione, se gli passi la stringa e gli altri paraetri che ti interessano viene una cosa carina ed utilizzabile per qlc cosa abbia un testo...cmq guarda se capisci questa routine:
Codice:
Private Sub Form_Load() Dim nLen(2) As Integer Dim sStr(2) As String sStr(1) = "mangiato" sStr(2) = "," nLen(1) = InStr(Text1, sStr(1)) If nLen(1) > 0 Then nLen(1) = nLen(1) + Len(sStr(1)) nLen(2) = InStr(nLen(1), Text1, sStr(2)) MsgBox Mid(Text1, nLen(1), nLen(2) - nLen(1)) End If End Sub sStr(1)=Prima parola cercata sStr(2)=Seconda parola cercata nLen(1)=Contiene l'indice della parola cercata nLen(2)=Contiene l'indice di fine ricerca |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2003
Città: Varese
Messaggi: 331
|
Grazie, funziona.
Vorrei fare in modo che mi cercasse tutte le parole (comprese tra altre due stabilite) presenti nella mia text e che scrivesse queste in file di testo. Per ora ho fatto questo Codice:
Private Sub Command2_Click() Dim parola As String Open App.Path & "\parolatrovata.txt" For Output As #1 Dim nLen(2) As Integer Dim sStr(2) As String sStr(1) = "stringa iniziale" sStr(2) = "stringa finale" nLen(1) = InStr(rtb1, sStr(1)) If nLen(1) > 0 Then nLen(1) = nLen(1) + Len(sStr(1)) nLen(2) = InStr(nLen(1), rtb1, sStr(2)) parola = Mid(rtb1, nLen(1), nLen(2) - nLen(1)) Write #1, parola Close End If End Sub E' possibile realizzare quanto detto sopra? tnx |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Sarà la febbre...ma sai che nn ho capito che chiedi
![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2003
Città: Varese
Messaggi: 331
|
Usando il codice che mi hai suggerito il programma cerca e trova la prima parola che soddisfa i parmetri da noi dettati (nell'esempio precendente era "una mela", avendo usato i paramentri "mangiato" e ",".)
Anche se la nostra text contiene altre parole che soddisfano i parametri, il programma si ferma dopo aver trovato la prima. Vorrei che una volta trovata la prima parola, il programma non si fermasse ma continuasse a cercare un eventuale seconda, terza ecc... ora è + chiaro? ![]() |
![]() |
![]() |
![]() |
#6 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Codice:
Sub ppp() a$ = "tua sorella, nerchia, tuanerchia_//&%$£ pinca tua kjhkjh nerchia jhghg tua_1234_nerchia" b1$ = "tua" b2$ = "nerchia" bb$ = "": ipos = 1 Do b$ = f_Mid$(a$, b1$, b2$, ipos, ipos) bb$ = bb$ & b$ Loop Until ipos = 0 End Sub Function f_Mid$(a$, b1$, b2$, ipos0, ipos2) ipos1 = InStr(ipos0, a$, b1$) If ipos1 > 0 Then ipos1 = ipos1 + Len(b1$) ipos2 = InStr(ipos1, a$, b2$) If ipos2 > 0 Then f_Mid$ = Mid$(a$, ipos1, ipos2 - ipos1) End If Else ipos2 = 0 End If End Function |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2003
Città: Varese
Messaggi: 331
|
Il mio problema non è il ciclo loop.
Non riesco a fare in modo che dopo avermi cercato la prima parola nel testo, al secondo giro di loop mi ignori la prima parola (già trovata) e passi alla seconda (poi al terzo giro alla terza, al quarto alla quarta ecc...). Dal codice postato da a2000 non riesco a capire come fare ciò. |
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Quote:
b1$ = "tua" b2$ = "nerchia" bb$ = " sorella, kjhkjh _1234_" |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
[OT]
Bentornato a2000!!
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Ciao maxisborone
[/OT] |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
|
very [OT]
quanto è durato l'internamento? ![]() ![]()
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n; Utilizzando atomi trivalenti drogheremo il silicio di tipo p; Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo |
![]() |
![]() |
![]() |
#12 |
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
un T[OT] ... off., due T[OT] on.
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:07.