• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

diogoarsousa

VB6 - Importar um ficheiro de texto separados com TABS, registo a registo.

4 mensagens neste tópico

Olá,

Tenho um ficheiro de texto cujos registos estão separados com tab.

Quando importo com -  Line Input #1, textline

Na variável textline aparece o ficheiro todo.

Como é que eu faço para ir buscar os registos um a um?

Obrigado

Diogo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usando o teu exemplo acima (confere a sintaxe):

dim aLines() as string

aLines = split(textline, vbTab)

O array aLines contêm N entradas, sendo que cada entrada corresponde a uma linha!

Espero ter ajudado.

Abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Caro AMateus,

O código que, de facto, tenho no meu programa é este. Como é que encaixo as suas instruções aqui:

Open ficheiro For Input As #1       ' Open file for input.

               num_registos = 0

                Do While Not EOF(1)          ' Loop until end of file.

                    Line Input #1, textline           ' Read line into variable.

                    ReDim Preserve array_registos(num_registos + 1)

                    array_registos(num_registos) = textline

                    num_registos = num_registos + 1
                    
                Loop
            Close #1    ' Close file.

EDIT: Utilizem a tag [ C O D E = V B ]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Se percebi bem, o problema é que a variável 'textline' contêm o texto todo, ou seja, o programa não parte o texto pelo Tab! Sendo assim, a função split pode ser acrescentada no final!

Já agora, não uses connstantes como o nº do ficheiro: se o handle #1 estiver já ocupado estoira

Assim (verifica os erros pois foi escrito directamente aqui e já não mexo no vb6 há algum tempo):

Dim sTexto as String
Dim sBuffer as String
Dim aTextoPartido() as String
Dim iFreeFileHandle as Integer

sTexto = ""
sBuffer = ""

iFreeFileHandle = FreeFile

Open ficheiro For Input As #iFreeFileHandle       ' Open file for input.
While Not EOF(#iFreeFileHandle)

    Line Input #1, sBuffer

    sTexto = sTexto + sBuffer
Loop
Close #iFreeFileHandle

aTextPartido = Split(sTexto, vbTab)

Dim i as Integer

i=0

Debug.Print "Nº de Linhas " & UBound(aTextoPartido)

For i = 0 to UBound(aTextoPartido)

    Debug.Print "Linha " & CStr(i+1) + " - " & aTextoPartido(i)
Next i

Espero ter ajudado.

Abraços

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora