PEGANDO UMA STRING DE UM TEXTO E EXIBI-LA EM VB6
ola pessoal.
Sou novo nesse negocio de programar, mas gostei muito qdo comecei a mexer no vb6.
Estou com um projeto que deveria fazer o seguinte:
A cada 15 minutos o programa te que ir em uma pasta, ver se há um texto novo e nesse texto novo, com as strings separadas por espaço e com varias linhas (varia entre 6 e 9 linhas), procurar uma determinada string de 3 letras. Ao acha-la, deve exibi-la num textbox.
Já tentei um monte de rotinas, mas como não tenho o jeito com programação (ainda!! Ma chego lá!!!) não deram certo.
Alguem saberia como posso resolver isso??
Obrigado
Sou novo nesse negocio de programar, mas gostei muito qdo comecei a mexer no vb6.
Estou com um projeto que deveria fazer o seguinte:
A cada 15 minutos o programa te que ir em uma pasta, ver se há um texto novo e nesse texto novo, com as strings separadas por espaço e com varias linhas (varia entre 6 e 9 linhas), procurar uma determinada string de 3 letras. Ao acha-la, deve exibi-la num textbox.
Já tentei um monte de rotinas, mas como não tenho o jeito com programação (ainda!! Ma chego lá!!!) não deram certo.
Alguem saberia como posso resolver isso??
Obrigado
Colega qual foram os métodos que tentou
Bom vou tentar ajudá-lo, pesquise por:
Timer = Para fazer a temporização de 15 em 15 minutos
Instr = Para Localizar a string de 3 letras retornando a posição da mesma na linha
Mid = Para extrair esta string e exibila no textbox
além das pesquisas acima, você deverá pesquisar como abrir um arquivo texto, e como localizar um determinado arquivo em determinada pasta.
Bom vou tentar ajudá-lo, pesquise por:
Timer = Para fazer a temporização de 15 em 15 minutos
Instr = Para Localizar a string de 3 letras retornando a posição da mesma na linha
Mid = Para extrair esta string e exibila no textbox
além das pesquisas acima, você deverá pesquisar como abrir um arquivo texto, e como localizar um determinado arquivo em determinada pasta.
Opa!
Tentei um metodo chamado REGEX e depois um chamado SPLIT, ,as a principio eu fiz só acionando um botão e deppois que conseguisse isolar a string iria pesquisar como colocar isso com o tempo. E mais um detalhe, os arquivos mudam o name a cada atualização.
agradeço pela ajuda!!
o codigo do REGEX:
Private Sub Command1_Click()
Dim s As String
Dim f As Integer
Dim h As String
Dim i As Integer
f = FreeFile
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-M\archive\Messages\EVATISM20111125.TXT[Ô] For Input As #f
Text1.Text = [Ô][Ô]
Do Until EOF(f)
Text1.Text = [Ô][Ô]
Line Input #f, s
Text1.Text = Text1.Text + s
Loop
Close #f [ô] fecha o arquivo
i = FreeFile
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPBreZ936.txt[Ô] For Input As #i
Text2.Text = [Ô][Ô]
Do Until EOF(i)
Text2.Text = [Ô][Ô]
Line Input #i, h
Text2.Text = Text2.Text + h
Loop
Close #i [ô] fecha o arquivo
End Sub
o codigo do SPLIT:
Private Sub Command1_Click()
[ô]([Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPAngI947.txt[Ô])
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
[ô]Open [Ô]c:\bd.txt[Ô] For Input As #F
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPAngI947.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)
Loc = Split(mLinha, [Ô] [Ô])
Text1.Text = Loc(UBound(Loc))
End If
Loop
Close #F
End Sub
exemplo do texto:
D-ATIS TRIAL IN OPERATION
VALIDATE WITH VOICE AT 127.75MHZ
ILS C2 APP / LDG 09R / TKOF 09L IN USE [ô] aqui a string que preciso pegar é a depois do TKOF, o 09L
WIND / CALM
VIS CAVOK [ô] aqui a string é o CAVOK. E por ai vai...
T 20 / DP 18
QNH 1016
ON FIRTS CTC WITH SBGR
RPT RECEIPT OF ATIS D
Obs: tanto a quantidade de strings nas linhas qto o numero de linhas variam. é enrrolado isso, né?
Mais uma vez agradeço pela ajuda.
Tentei um metodo chamado REGEX e depois um chamado SPLIT, ,as a principio eu fiz só acionando um botão e deppois que conseguisse isolar a string iria pesquisar como colocar isso com o tempo. E mais um detalhe, os arquivos mudam o name a cada atualização.
agradeço pela ajuda!!
o codigo do REGEX:
Private Sub Command1_Click()
Dim s As String
Dim f As Integer
Dim h As String
Dim i As Integer
f = FreeFile
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-M\archive\Messages\EVATISM20111125.TXT[Ô] For Input As #f
Text1.Text = [Ô][Ô]
Do Until EOF(f)
Text1.Text = [Ô][Ô]
Line Input #f, s
Text1.Text = Text1.Text + s
Loop
Close #f [ô] fecha o arquivo
i = FreeFile
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPBreZ936.txt[Ô] For Input As #i
Text2.Text = [Ô][Ô]
Do Until EOF(i)
Text2.Text = [Ô][Ô]
Line Input #i, h
Text2.Text = Text2.Text + h
Loop
Close #i [ô] fecha o arquivo
End Sub
o codigo do SPLIT:
Private Sub Command1_Click()
[ô]([Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPAngI947.txt[Ô])
Dim F As Integer
Dim mLinha As String
Dim Loc() As String
F = FreeFile
[ô]Open [Ô]c:\bd.txt[Ô] For Input As #F
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPAngI947.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)
Loc = Split(mLinha, [Ô] [Ô])
Text1.Text = Loc(UBound(Loc))
End If
Loop
Close #F
End Sub
exemplo do texto:
D-ATIS TRIAL IN OPERATION
VALIDATE WITH VOICE AT 127.75MHZ
ILS C2 APP / LDG 09R / TKOF 09L IN USE [ô] aqui a string que preciso pegar é a depois do TKOF, o 09L
WIND / CALM
VIS CAVOK [ô] aqui a string é o CAVOK. E por ai vai...
T 20 / DP 18
QNH 1016
ON FIRTS CTC WITH SBGR
RPT RECEIPT OF ATIS D
Obs: tanto a quantidade de strings nas linhas qto o numero de linhas variam. é enrrolado isso, né?
Mais uma vez agradeço pela ajuda.
Onde estou errando nesses codigo??
Colega, deixa eu fazer uma pergunta, você deseja exibir varios resultados de uma só vez, se sim terá de exbir estes dados em um list box, caso contrário só ira aparecer os dados da ultima linha do arquivo texto.
Faz o seguinte mostra baseado no texto que você postou como apareceria nos textbox.
Faz o seguinte mostra baseado no texto que você postou como apareceria nos textbox.
Mais ou menos assim:
D-ATIS TRIAL IN OPERATION
VALIDATE WITH VOICE AT 127.75MHZ
ILS C2 APP / LDG 09R / TKOF 09L IN USE [ô] aqui a string que preciso pegar é a depois do TKOF, ou seja, o 09L e coloca-la numa caixa de texto sozinha
WIND / CALM
VIS CAVOK [ô] aqui a string é o CAVOK, tambem vai ficar numa caixa de texto sozinha, só que numa atualização pode aparecer numeros ao inves
de [Ô]CAVOK[Ô]
T 20 / DP 18
QNH 1016 [ô] aqui pega a numeração ( que tambem muda a cada atualização) e coloca numa outra caixa de texto
ON FIRTS CTC WITH SBGR
RPT RECEIPT OF ATIS D
Do jeito que fiz realmente so aparece a ultima linha do texto...
Private Sub Command1_Click() [ô] aqui usei o botão pq ainda não sei como usar o TIMER, isso será outra briga...rsrsrs
Dim s As String
Dim f As Integer
Dim h As String
Dim i As Integer
f = FreeFile
[ô] aqui é o endereço do texto, o nome dele muda a cada atualização
Open[Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPAngE971.txt[Ô] For Input As #f
Text1.Text = [Ô][Ô]
Do Until EOF(f)
Text1.Text = [Ô][Ô]
Line Input #f, s
Loop
Close #f [ô] fecha o arquivo
i = FreeFile
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPBreZ936.txt[Ô] For Input As #i
Text2.Text = [Ô][Ô]
Do Until EOF(i)
Text2.Text = [Ô][Ô]
Line Input #i, h
[ô] nessa sequencia que deveria aparecer as strings que isolei ( eu acho que fiz isso, não sei)
Text1.Text = [Ô]3ª linha, 9ª string[Ô]
Text2.Text = [Ô]5ª linha, 2ª string[Ô]
Text3.Text = [Ô]7ª linha, 2ª string[Ô]
Loop
Close #i [ô] fecha o arquivo
End Sub
D-ATIS TRIAL IN OPERATION
VALIDATE WITH VOICE AT 127.75MHZ
ILS C2 APP / LDG 09R / TKOF 09L IN USE [ô] aqui a string que preciso pegar é a depois do TKOF, ou seja, o 09L e coloca-la numa caixa de texto sozinha
WIND / CALM
VIS CAVOK [ô] aqui a string é o CAVOK, tambem vai ficar numa caixa de texto sozinha, só que numa atualização pode aparecer numeros ao inves
de [Ô]CAVOK[Ô]
T 20 / DP 18
QNH 1016 [ô] aqui pega a numeração ( que tambem muda a cada atualização) e coloca numa outra caixa de texto
ON FIRTS CTC WITH SBGR
RPT RECEIPT OF ATIS D
Do jeito que fiz realmente so aparece a ultima linha do texto...
Private Sub Command1_Click() [ô] aqui usei o botão pq ainda não sei como usar o TIMER, isso será outra briga...rsrsrs
Dim s As String
Dim f As Integer
Dim h As String
Dim i As Integer
f = FreeFile
[ô] aqui é o endereço do texto, o nome dele muda a cada atualização
Open[Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPAngE971.txt[Ô] For Input As #f
Text1.Text = [Ô][Ô]
Do Until EOF(f)
Text1.Text = [Ô][Ô]
Line Input #f, s
Loop
Close #f [ô] fecha o arquivo
i = FreeFile
Open [Ô]D:\FATEC\6 semestre\Projeto de Graduação - Célia\Material para pesquisa\AIRCOMevatis\EVATIS-B oday\Communication\DlkPBreZ936.txt[Ô] For Input As #i
Text2.Text = [Ô][Ô]
Do Until EOF(i)
Text2.Text = [Ô][Ô]
Line Input #i, h
[ô] nessa sequencia que deveria aparecer as strings que isolei ( eu acho que fiz isso, não sei)
Text1.Text = [Ô]3ª linha, 9ª string[Ô]
Text2.Text = [Ô]5ª linha, 2ª string[Ô]
Text3.Text = [Ô]7ª linha, 2ª string[Ô]
Loop
Close #i [ô] fecha o arquivo
End Sub
então o que é preciso para que funcione? na realidade pelo menos uma das string terá de ser uma valor fixo sempre, que poderá ser uasado como base para a extração da string necessária.
o que você precisa virá sempre depois de TKOF e sempre depois de VIS
...
ILS C2 APP / LDG 09R / TKOF 09L IN USE
...
VIS CAVOK
se TKOF e VIS estiverem sempre no arquivo texto fica fácil, se estas siglas também mudam ai fica dificil.
então é fixo ou mudam?
o que você precisa virá sempre depois de TKOF e sempre depois de VIS
...
ILS C2 APP / LDG 09R / TKOF 09L IN USE
...
VIS CAVOK
se TKOF e VIS estiverem sempre no arquivo texto fica fácil, se estas siglas também mudam ai fica dificil.
então é fixo ou mudam?
O TKOF e o VIS são fixos mesmo...
então só um segundo
teste ai
Tem que referenciar no Project?
Esta dando erro [Ô]Method or data member not found[Ô] e marcando o [Ô].InitDir[Ô]...
Esta dando erro [Ô]Method or data member not found[Ô] e marcando o [Ô].InitDir[Ô]...
Tópico encerrado , respostas não são mais permitidas