FAZER CONSULTA EM UM ARQUIVO TEXTO

GRAEFF 21/10/2009 08:55:08
#325908
Srs. bom dia!

Estou utilizando o vb6

Não estou conseguindo fazer um trabalho simples

Já coloquei no form dois componentes txtbox, um iria solicitar o nome do usuario e no outro irá retornar o sobrenome mesmo.

Como faço para pesquisar o nome(digitando qualquer parte do nome) do usuário num arquivo texto e retornar o sobrenome do mesmo.



Exemplo: digito no textbox o o nome francisco(ou apenas uma parte do nome), ele procura no arquivo texto(bd.txt) este nome e retorna no outro textbox o sobrenome do usuário. Como posso fazer isso?? lembrando que o nome eh separado do sobrenome por tab



bd.txt:

francisco(tab)almeida
patricia(tab)marques
joana(tab)quintal


Desde já agradeço a colaboração.
RCMRO 21/10/2009 12:35:36
#325933
Adapta ao seu código o código abaixo que deve funcionar mas, lembrese, como arquivo texto não tem indice, só acessa esta rotina quando o usuário clicar num botão e não no evento CHANGE....

Private Sub AddSNome(pNome As String)
Dim F As Integer
Dim mLinha As String
Dim mNome As String
Dim mSNome As String

Screen.MousePointer = vbHourglass
F = FreeFile

cbSobrenome.Clear
Open [Ô]bd.txt[Ô] For Input As #F
Do While Not EOF(F)
Line Input #F, mLinha
mNome = Left(mLinha, InStr(mLinha, vbTab) - 1)
mSNome = Mid(mLinha, InStr(mLinha, vbTab) + 1)
If InStr(1, UCase(mNome), UCase(pNome)) > 0 Then
cbSobrenome.AddItem mSNome
End If
Loop
Close #F
Screen.MousePointer = vbDefault
End Sub

GRAEFF 21/10/2009 13:06:10
#325940
mas tipo aonde no codigo que define o nome dos 2 textboxs e do botao de consulta?
GRAEFF 21/10/2009 15:00:45
#325957
alguem pra dar um help?? no codigo acima nao to sabendo identificar o que eh textbox e o que eh botao
MARCELO.TREZE 21/10/2009 15:10:56
#325959
Resposta escolhida
Tenta isto

Coloque 02 textbox e 01 commandbutton no seu projeto

depois coloque oi seguinte código no commandbutton

Private Sub Command1_Click()
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
Open [Ô]c:\bd.txt[Ô] For Input As #F
Do While Not EOF(F)
Line Input #F, mLinha
If InStr(1, UCase(nLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(nLinha,vbTab)
Text2.Text = Loc(UBound(Loc))
End If
Loop
Close #F
End Sub


teste pois escrevi o código de um PC sem o VB

GRAEFF 21/10/2009 15:19:47
#325960
Quando eu executo nao aparece nada, eh isso mesmo? tem msn?
MARCELO.TREZE 21/10/2009 15:26:45
#325961
desculpe tinha um erro de digitação

Private Sub Command1_Click()
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
Open [Ô]c:\bd.txt[Ô] For Input As #F
Do While Not EOF(F)
Line Input #F, mLinha
If InStr(1, UCase(mLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(mLinha,vbTab)
Text2.Text = Loc(UBound(Loc))
End If
Loop
Close #F
End Sub


tente novamente
GRAEFF 21/10/2009 15:36:46
#325963
agora funcionou mas como eu faço pra encrementar pq tipo o txt eh saparado o nome e sobrenome por esse caracter( | ) e quando digito la aparece o que eu digitei no text1 e o resultado de tudo junto aparece no text2 e eu queria que assim que ele achasse ele completasse o text1 com o nome e o text2 com o sobrenome achado correspondente akele nome que digitei no text1.

eh possivel?
MARCELO.TREZE 21/10/2009 15:40:15
#325964
é separado por | não por tab então troque esta linha

Loc = Split(mLinha,[Ô]|[Ô])


veja agora
GRAEFF 21/10/2009 15:46:06
#325965
kra sem kerer ser chato ja sendo, pow tu ta me ajudando pra caramba mas seguinte.

no text1 onde digito a palavra chave quando clico no botao ele no text2 joga o sobrenome certinho mas ele nao busca e joga no text1 o nome correspondente akele sobrenome saca? entao se eu digitar thia(no text1) e fizer a busca no text2 vai ficar marques e no text1 continua thia e eu queria que ficasse thiago saca? queria que ele autocompletasse tb o text1 com o nome e nao somente com a parte que eu digitei
MARCELO.TREZE 21/10/2009 15:48:41
#325967
então esta ultima modificação

 If InStr(1, UCase(mLinha), UCase( Text1.Text) ) > 0 Then
Loc = Split(mLinha,[Ô]|[Ô])
Text1.Text = Loc(LBound(Loc)) '<<<<<------
Text2.Text = Loc(UBound(Loc))
End If

Página 1 de 3 [30 registro(s)]
Tópico encerrado , respostas não são mais permitidas