FILTRAR ARQ. TEXTO
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.
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.
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
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.
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
Isso Eltao!! Valeu!! Vou testar mais um pouco, depois encerro.
Tópico encerrado , respostas não são mais permitidas