FILTRAR ARQ. TEXTO

IRENKO 12/12/2006 11:26:27
#189488
Tenho um Text onde diito um parametro para pesquisa em um arq. texto.

Arq.Texto:

"1" ; "15/11/06 17:30" ; 16 ; "Si. Met"
"1" ; "15/11/06 17:31" ; 16 ; "Si. Met"
"0" ; "15/11/06 17:31" ; 16 ; "Si. Met"
"5" ; "15/11/06 17:31" ; 16 ; "Si. Met"
"0" ; "15/11/06 19:14" ; 19 ; "Si. Met"
"0" ; "15/11/06 19:28" ; 20 ; "Si. Met"
"5" ; "15/11/06 19:30" ; 21 ; "Si. Met"
"0" ; "15/11/06 19:35" ; 20 ; "Si. Met"
"3" ; "15/11/06 19:36" ; 21 ; "Si. Met"
"3" ; "15/11/06 19:37" ; 20 ; "Si. Met"
"0" ; "15/11/06 19:38" ; 20 ; "Si. Met"
"3" ; "15/11/06 19:38" ; 20 ; "Si. Met"
"3" ; "15/11/06 19:42" ; 18 ; "Si. Met"
"0" ; "15/11/06 19:43" ; 20 ; "Si. Met"
"0" ; "15/11/06 19:44" ; 19 ; "Si. Met"
"0" ; "05/12/06 15:38" ; 0 ; "Si. Met"
"0" ; "05/12/06 15:38" ; 0 ; "Si. Met"
"1" ; "05/12/06 15:39" ; 0 ; "Si. Met"
"1" ; "05/12/06 15:42" ; 11 ; "Si. Met"
"1" ; "05/12/06 15:43" ; 12 ; "Si. Met"
"0" ; "05/12/06 15:43" ; 13 ; "Si. Met"
"0" ; "05/12/06 15:44" ; 14 ; "Si. Met"
"0" ; "05/12/06 15:47" ; 15 ; "Si. Met"
"0" ; "05/12/06 15:52" ; 15 ; "Si. Met"
"0" ; "05/12/06 15:54" ; 15 ; "Si. Met"
"0" ; "11/12/06 14:27" ; 220 ; "Si. Met"
"0" ; "11/12/06 14:28" ; 25 ; "Si. Met"
"SD1" ; "11/12/06 14:52" ; 25 ; "Si. Met"
"SD1" ; "11/12/06 14:52" ; 25 ; "Si. Met"

Se eu digito no text 0 me retorna todas as linhas com 0, se digito SD1 me retorna todas as linhas co SD1 e assim por diante. Como montar essa pesquisa? Sempre buscando na primeira coluna do arq.
USUARIO.EXCLUIDOS 12/12/2006 11:43:37
#189490
Resposta escolhida
Neste exemplo pra por os dados num list:

Dim f As Integer, i As Integer
Dim Linha() As String
f = FreeFile
'Abre o arquivo pra ler os dados
Open "C:\Seuarquivo.txt" For Input As #f
'Põe cada linha do arquivo como um item do Array Linha
Linha = Split(Input(LOF(f), f), vbCrLf)
Close #f

'Loop para ler todas linhas
For i = 0 To UBound(Linha)
'Se a linha começar com o valor do Text, adiciona na lista
If Linha(i) Like """" & Text1.Text & "*" Then
List1.AddItem Linha(i)
End If
Next i

IRENKO 12/12/2006 12:51:58
#189502
Etao, seu código funciona bem mas não estou conseguindo adapta-lo no meu, conforme abaixo:

Sub Novo()
Dim LinhaInicial As Integer, intLoop As Integer, strBuffer As String
Dim text
Dim Lin1, Numerar
Dim y As Variant
Dim i As Integer
Dim Texto As String
Dim slinha As String
LinhaInicial = 4
Lin1 = 7
Numerar = 1
text = ThisWorkbook.Path & "\CFORNO2.txt"

Open text For Input As #1

For intLoop = 1 To LinhaInicial
Line Input #1, strBuffer
Next intLoop

Do While Not EOF(1)
Line Input #1, Texto
y = Split(Texto, ";")
i = 0
Plan1.Range("A" & Lin1) = Numerar
Plan1.Range("B" & Lin1) = ReplaceString(y(0), Chr(34), "")
Plan1.Range("C" & Lin1) = ReplaceString(y(1), Chr(34), "")
Plan1.Range("C" & Lin1).NumberFormat = "DD/MM HH:MM"
Plan1.Range("D" & Lin1) = y(2)
Plan1.Range("E" & Lin1) = ReplaceString(y(3), Chr(34), "")
Lin1 = Lin1 + 1
Numerar = Numerar + 1
Loop

Close #1

Acima carrego em uma planilha sem as aspas conforme pode ver, no seu carrega com tudo.
USUARIO.EXCLUIDOS 12/12/2006 13:08:59
#189506
No seu tá mais fácil ainda de fazer:

Sub Novo()
Dim LinhaInicial As Integer, intLoop As Integer, strBuffer As String
Dim text
Dim Lin1, Numerar
Dim y As Variant
Dim i As Integer
Dim Texto As String
Dim slinha As String
LinhaInicial = 4
Lin1 = 7
Numerar = 1
text = ThisWorkbook.Path & "\CFORNO2.txt"

Open text For Input As #1

For intLoop = 1 To LinhaInicial
Line Input #1, strBuffer
Next intLoop

Do While Not EOF(1)
Line Input #1, Texto
y = Split(Texto, ";")
i = 0
'Verifica-se aqui se é igual ao valor do Text1
If Trim(ReplaceString(y(0), Chr(34), "")) = Trim(Text1.Text) Then
Plan1.Range("A" & Lin1) = Numerar
Plan1.Range("B" & Lin1) = ReplaceString(y(0), Chr(34), "")
Plan1.Range("C" & Lin1) = ReplaceString(y(1), Chr(34), "")
Plan1.Range("C" & Lin1).NumberFormat = "DD/MM HH:MM"
Plan1.Range("D" & Lin1) = y(2)
Plan1.Range("E" & Lin1) = ReplaceString(y(3), Chr(34), "")
Lin1 = Lin1 + 1
Numerar = Numerar + 1
End If
Loop

Close #1
IRENKO 12/12/2006 13:40:20
#189515
Isso Eltao!! Valeu!! Vou testar mais um pouco, depois encerro.
Tópico encerrado , respostas não são mais permitidas