VB - BUSCANDO UM CODIGO DENTRO DE UM ARQUIVO TXT

RAMIRESVB 07/10/2013 14:04:16
#429637
Boa tarde,

Sou novo no fórum, e preciso de uma ajuda pessoal. Estou usando o Visual Studio 2008, e preciso fazer uma aplicação de que busque códigos de barra dentro de um arquivo TXT. A Idéia, é comparar o Código Digitado no textbox com o arquivo TXT. Caso o código digitado não exista, forneça um msgbox, dizendo que o código não é cadastrado. Essa aplicação é para Windows Mobile. o Leitor é um X13-12056. Alguém pode dar uma Luz ?
MIKEY 07/10/2013 21:44:38
#429664
[ô]Coloque este código num botão. é necessário colocar um arquivo xxx.txt na área C:\. Lembre-se que se os dados não [ô]retornarem é por que geralmente um arquivo na raiz do disco C: é protegido. Então é mais recomendado inseri-lo em Meus [ô]Documento e modificar o caminho no código. Insira um Text1 e um botão. Tente adapitá-lo ao VS 2008. Esse foi desenvolvido em VB6.
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
On Error Resume Next [ô]use isso para evitar erros

arq = [Ô]D:\xxx.txt[Ô] [ô]Caminho do arquivo. Aconselho usar uma variável caso seja um projeto baseado em GUI

x = FreeFile()
Open arq For Input As x
y = Input(LOF(x), x)
Close x

L = Split(y, vbCrLf)
inf = L(UBound(L) - 1) [ô]posição da informação em L no documento._
[ô]Se você modificar o número [Ô]¨1[Ô] vai mudar a linha de leitura em ordem decrescente.
[ô]Ou seja, se houver 10 elementos no arquivo o número 1 retorna o ultimo elemento gravado.

C = Right(inf, 20) [ô]Quantidade de caracteres exibidos por L

If Text1 = C Then
MsgBox [Ô]Essa informação EXISTE no arquivo[Ô]
Else
MsgBox [Ô]Essa informação NÃO EXISTE no arquivo[Ô]
End If
[ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô][ô]
Espero que eu tenho ajudado!
MARCELO.TREZE 08/10/2013 10:15:31
#429683
colega a partir da versão 2005 ,do visual studio entende-se por VB.NET, então depois desta dica aconselho a postar suas duvidas no forum VB.NET

para ler e comparar um arqui texto é assim

Private Sub btnLer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLer.Click

Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String

If IO.File.Exists([Ô]c:\seutexto.txt[Ô]) Then
fluxoTexto = New IO.StreamReader([Ô]c:\seutexto.txt[Ô])
linhaTexto = fluxoTexto.ReadLine

If linhaText0 = txtCodBarra.Text Then
MessageBox.Show([Ô]Código Existe[Ô])
Else
MessageBox.Show([Ô]Código não existe[Ô])
End If

fluxoTexto.Close()
Else
MessageBox.Show([Ô]Arquivo não existe[Ô])
End If
End Sub


postei o código funcionando em um botão, porem você pode coloca-lo no change e usando um IF para verificar a quantidade de caracteres e se for 13 dar um enter e pesquisar automaticamente, sem ter que ficar pressionando botão

RAMIRESVB 08/10/2013 10:46:09
#429686
Obrigado pela ajuda.... Marcelo e Mikey,

Segui sua dica Marcelo, mas esta comparando sempre com a primeira linha do TXT. qualquer código que ele busque, esta sempre comparando com a primeira linha. Meu txt esta assim:

7891093044414
7894200027836
7891093044995
7894200108573
7894200108597
7894200108627
7894200138389

Ele sempre compara com a primeira Linha 7891093044414. como faço pra comparar com o restante dos códigos?
Abaixo, como eu fiz. desde Já agradeço.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String

If IO.File.Exists([Ô]\Windows\Desktop\produtos.txt[Ô]) Then
fluxoTexto = New IO.StreamReader([Ô]\Windows\Desktop\produtos.txt[Ô])
linhaTexto = fluxoTexto.ReadLine

If linhaTexto = txtCodBarra.Text Then
MessageBox.Show([Ô]Código Existe[Ô])
Else
MessageBox.Show([Ô]Código não existe[Ô])
End If

fluxoTexto.Close()
Else
MessageBox.Show([Ô]Arquivo não existe[Ô])
End If
End Sub
MARCELO.TREZE 08/10/2013 11:06:15
#429687
tenta ai agora

Private Sub btnLer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLer.Click

Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String

If IO.File.Exists(([Ô]\Windows\Desktop\produtos.txt[Ô]) Then
fluxoTexto = New IO.StreamReader(([Ô]\Windows\Desktop\produtos.txt[Ô])
linhaTexto = fluxoTexto.ReadLine

While linhaTexto <> Nothing
linhaTexto = fluxoTexto.ReadLine

If linhaTexto = txtCodBarra.Text Then
MessageBox.Show([Ô]Código Existe[Ô])
Else
MessageBox.Show([Ô]Código não existe[Ô])
End If

End While
fluxoTexto.Close()
Else
MessageBox.Show([Ô]Arquivo não existe[Ô])
End If
End Sub


tenta agora colega, e me desculpe é que não sou programador .net somente vb6, por isso dos errinhos

MARCELO.TREZE 08/10/2013 11:10:59
#429688
caso a rotina acima não funcione tente esta

Private Sub btnLer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLer.Click

Dim fluxoTexto As IO.StreamReader
Dim linhaTexto As String

If IO.File.Exists([Ô]\Windows\Desktop\produtos.txt[Ô]) Then
fluxoTexto = New IO.StreamReader([Ô]\Windows\Desktop\produtos.txt[Ô])
linhaTexto = fluxoTexto.ReadLine

While Not fluxoTexto.EndOfStream
linhaTexto = fluxoTexto.ReadLine

If linhaTexto = txtCodBarra.Text Then
MessageBox.Show([Ô]Código Existe[Ô])
Else
MessageBox.Show([Ô]Código não existe[Ô])
End If

End While

fluxoTexto.Close()
Else
MessageBox.Show([Ô]Arquivo não existe[Ô])
End If
End Sub
RAMIRESVB 08/10/2013 14:09:04
#429699
Agora ta Comparando somente a segunda linha... como no anexo

MARCELO.TREZE 08/10/2013 18:03:19
#429707
e o segundo codigo vc testou
RAMIRESVB 09/10/2013 09:14:44
#429726
Bom dia,

Sim Marcelo, o segundo código também faz a mesma coisa, ele compara qualquer código com apenas a segunda linha do TXT. Como na Imagem Anterior.
MARCELO.TREZE 09/10/2013 16:30:02
#429785
bom colega eu te dei o caminho das aguas tranfira agora o código postado por mim pára o forum VB.NET, que o pessoal acaba de te ajudar la.
Faça seu login para responder