View Full Version : [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 :rolleyes:
ciao.
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:
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
Text1=contiene il tuo testo nell'esempio
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
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
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
Sostanzialmente la prima parola trovata viene scritta nel file.
E' possibile realizzare quanto detto sopra?
tnx
Sarà la febbre...ma sai che nn ho capito che chiedi :(
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?
:sperem:
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
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ò.
Quasi Originariamente inviato da ASyd
Il codice postato da a2000 riesce a fare in modo che dopo avere cercato la prima parola nel testo, al secondo giro di loop ignora la prima parola (già trovata) e passa alla seconda (poi al terzo giro alla terza, al quarto alla quarta ecc...).
Infatti:
a$ = "tua sorella, nerchia, tuanerchia_//&%$£ pinca tua kjhkjh nerchia jhghg tua_1234_nerchia"
b1$ = "tua"
b2$ = "nerchia"
bb$ = " sorella, kjhkjh _1234_"
maxithron
14-10-2003, 11:49
[OT]
Bentornato a2000!!
maxithron
14-10-2003, 12:21
very [OT]
quanto è durato l'internamento? :asd: :asd:
un T[OT] ... off., due T[OT] on.
http://www.insiemeweb.com/gif/trasporti/tras015.gif
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.