USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Fazer pesquisa
galves
SP
SP - BRASIL
ENUNCIADA !
Postada em 23/11/2004 11:06 hs            
Tenho um programinha que faz pesquisa, para ele realizar a pesquisa no texto
o usuario tem que digitar um Linha(text box) que eh o codigo, um campo Posição Inicial e Final(text box). Ai eh dado um ENTER e a pesquisa eh feita e dado o resultado numa text com nome rasultado.
Agora eu queria complementar o seguinte: Dando mais um enter ele procuraria no texto novamente se ouver mais registros para abaixo, tipo um pesquisa no WOrd, excel , etc .....
Abaixo esta a função que eu estou usando.
Function BuscaInfo() As String
    Dim ARR As Variant
    Dim Total As Long
    Dim i As Integer
    Dim Linha As String
    Dim Inicia As Integer
    Dim Final As Integer
   
    Linha = txtlinha.Text                   ' Guardar o Valor digitado na Caixa Linha.
    Inicia = Val(txtPosInicial.Text)        ' Guardar o Valor digitado na Caixa Posição Inicial.
    Final = Val(txtPosFinal.Text + 1)       ' Guardar o Valor digitado na Caixa Posição Final.
    ARR = Split(txtbloco, vbCrLf)
           
    txtMostra.Text = BuscaInfo
   
    For i = 0 To UBound(ARR)
        If Left$(ARR(i), Len(Linha)) = Linha Then
            Exit For
        End If
        Total = Total + Len(ARR(i)) + 2
    Next i
       
       Total = Total + Inicia - 1
      
    txtbloco.SelStart = Total
    txtbloco.SelLength = Final - Inicia
    txtbloco.Refresh
    txtbloco.SetFocus
   
    txtMostra.Text = txtbloco.SelText
   
End Function
se alguem puder me ajudar ......Emoções
Flw's
 
   
Sandro
não registrado
Postada em 23/11/2004 13:03 hs   
Você deverá usar uma variável em nível de módulo para guardar a posição da primeira ocorrência de sua pesquisa. Numa próxima passada, você deverá começar desta posição. Pelo seu código você está pesquisando um vetor, então esta variável guardará o índice do subscrito em que você localizou o que foi pedido. P.Ex.
Dim UltOcorrencia as Integer   <-- Esta variável guardará a última ocorrência do seu texto
Function BuscaInfo() As String
    Dim ARR As Variant
    Dim Total As Long
    Dim i As Integer
    Dim Linha As String
    Dim Inicia As Integer
    Dim Final As Integer
   
    Linha = txtlinha.Text                   ' Guardar o Valor digitado na Caixa Linha.
    Inicia = Val(txtPosInicial.Text)        ' Guardar o Valor digitado na Caixa Posição Inicial.
    Final = Val(txtPosFinal.Text + 1)       ' Guardar o Valor digitado na Caixa Posição Final.
    ARR = Split(txtbloco, vbCrLf)
           
    txtMostra.Text = BuscaInfo
   
    For i = UltOcorrencia To UBound(ARR)    <-- Agora i começa em UltOcorrencia
        If Left$(ARR(i), Len(Linha)) = Linha Then
            UltOcorrencia = i + 1                  <-- Agora UltOcorrencia armazena i+1
            Exit For
        End If
        Total = Total + Len(ARR(i)) + 2
    Next i
        
    Total = Total + Inicia - 1
      
    txtbloco.SelStart = Total
    txtbloco.SelLength = Final - Inicia
    txtbloco.Refresh
    txtbloco.SetFocus
   
    txtMostra.Text = txtbloco.SelText
   
End Function
 
Na primeira passada, sua variável estará com Zero, portanto iniciará no primeiro item do vetor, quando encontrar, passará este índice para UltOcorrência. QUando o usuário chamar novamente, a variável i começará em UltOcorrencia + 1, ou seja o próximo subscrito depois do último encontrado. Você somente deverá se preocupar quando o usuário alterar a string de pesquisa, em que você deverá lembrar de zerar UltOcorrencia.
 
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página