Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Cercare Testo
Forum - Visual Basic 6 - Cercare Testo

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 12:51
Domenica, 01/06/2008
Ciao a tutti!
Per ricercare un testo all'interno della textbox io uso la funzione Instr() tipo:
if Instr(1, text1.text, "Ciao") > 0 then
msgbox "Ciao"
end if

solo che se trova ciao si ferma e se magari ce ne un altro dopo non lo rileva quindi al posto di venire 2 msgbox con scritto "Ciao" ne viene una e basta. Come posso fare che anche se trova la parola datagli continui a ricercare altre possibili parole?

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 12:59
Domenica, 01/06/2008
Devi usare sempre la Instr, in un ciclo, variando opportunamente il primo parametro.

All'inizio del ciclo il primo parametro della Instr sara' uguale a 1, la seconda volta sara' eguale al valore restituito dalla Instr+1 (se ha avuto successo) e cosi' via ...

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:44
Domenica, 01/06/2008
Grazie infinite!!!!!!!!!
Funziona!!

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 15:52
Domenica, 01/06/2008
Di nulla ... era cosi' sin dal Quick Basic ...

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 16:32
Domenica, 01/06/2008
Grazie ancora di tutto...Ma un'ultima cosa...

Come posso fare che quando finisce di trovare tutti gli elementi rinizi da capo?
cioè per esempio:

Codice sorgente - presumibilmente VB.NET

  1. Dim I As Integer
  2. Private Sub Command1_Click()
  3. If InStr(I, Text1.Text, "ciao") > 0 Then
  4. Text1.SetFocus
  5. Text1.SelStart = InStr(I, Text1.Text, "ciao")
  6. I = (InStr(I, Text1.Text, "ciao") + 1)
  7. End If
  8. End Sub
  9.  
  10. Private Sub Form_Load()
  11. I = 1
  12. End Sub



Se nella text1 ci metto:

ciao
asd
ciao
prova
ciao

Ogni volta che premo il pulsante mi mette il cursore del mouse sulla parola tipo:
(Prima volta che spingo il command)

c|iao
asd
ciao
prova
ciao

(seconda volta che premo il command)

ciao
asd
c|iao
prova
ciao

(3° volta)

ciao
asd
ciao
prova
c|iao

Però poi dopo va "oltre", invece come posso fare che riinizi dal primo?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 16:38
Domenica, 01/06/2008
AH no!
ASp
Risolto!
ecco qui x ki gli interessasse:
Codice sorgente - presumibilmente VB.NET

  1. Dim I As Integer
  2. Private Sub Command1_Click()
  3. If InStr(I, Text1.Text, "ciao") > 0 Then
  4. Text1.SetFocus
  5. Text1.SelStart = InStr(I, Text1.Text, "ciao")
  6. I = (InStr(I, Text1.Text, "ciao") + 1)
  7. Else
  8. I = 1
  9. End If
  10. End Sub
  11.  
  12. Private Sub Form_Load()
  13. I = 1
  14. End Sub


PM Quote
Avatar
antometal (Member)
Guru


Messaggi: 691
Iscritto: 12/09/2007

Segnala al moderatore
Postato alle 16:44
Domenica, 01/06/2008
se ti interessa puoi anche selezionare la parola cercata

Codice sorgente - presumibilmente Plain Text

  1. Text1.SelStart = InStr(I, Text1.Text, parola) - 1
  2. Text1.SetFocus
  3. Text1.SelLength = len(parola)



al posto di

Codice sorgente - presumibilmente Plain Text

  1. Text1.SetFocus
  2. Text1.SelStart = InStr(I, Text1.Text, "ciao")


PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 16:47
Domenica, 01/06/2008
Oppure cosi'

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2.     Dim p As Long
  3.     Static i As Long
  4.    
  5.     p = InStr(i + 1, Text1.Text, "ciao")
  6.     If p Then
  7.         Text1.SelStart = p
  8.         Text1.SetFocus
  9.         i = p
  10.     Else
  11.         i = 0
  12.     End If
  13. End Sub



senza altro codice

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 17:13
Domenica, 01/06/2008
Lol è sorto un'altro problema (spero sia l'ultimo)...
Non riesco a selezionare il testo...
Esempio:

Codice sorgente - presumibilmente VB.NET

  1. Dim I As Integer
  2. Private Sub Command1_Click()
  3. If InStr(I, Text1.Text, "ciao") > 0 Then
  4. Text1.SetFocus
  5. Text1.SelStart = (InStr(I, Text1.Text, "ciao") - 1)
  6. Text1.SelLength = (InStr(I, Text1.Text, "-") - 1)
  7. I = (InStr(I, Text1.Text, "ciao") + 1)
  8. Else
  9. I = 1
  10. End If
  11. End Sub
  12.  
  13. Private Sub Form_Load()
  14. I = 1
  15. End Sub



Se nella text1 metto:
ciao
------
asd
asd
ciao
-------
asdasd
ad
ciao
------
132

Premendo il command la prima e la seconda volta seleziona tutto come deve...Ma alla 3° volta ke premo il command seleziona non Ciao ma:

ciao
------
132

perchè?
Come posso rimediare?

Grazie a tutti
:D

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo