PEGANDO UMA STRING DE UM TEXTO E EXIBI-LA EM VB6

ABPAULA 25/04/2012 02:23:38
#400708
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
MARCELO.TREZE 25/04/2012 09:55:59
#400719
Resposta escolhida
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.

ABPAULA 25/04/2012 12:44:10
#400744
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.
ABPAULA 27/04/2012 10:42:49
#400890
Onde estou errando nesses codigo??
MARCELO.TREZE 27/04/2012 12:47:11
#400900
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.

ABPAULA 27/04/2012 13:11:38
#400903
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



MARCELO.TREZE 27/04/2012 13:29:03
#400904
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?

ABPAULA 27/04/2012 13:58:07
#400906
O TKOF e o VIS são fixos mesmo...
MARCELO.TREZE 27/04/2012 14:08:50
#400908
então só um segundo
MARCELO.TREZE 27/04/2012 14:53:04
#400912
teste ai

ABPAULA 27/04/2012 15:18:56
#400914
Tem que referenciar no Project?
Esta dando erro [Ô]Method or data member not found[Ô] e marcando o [Ô].InitDir[Ô]...
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas