Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wylliam

ler arquivo txt em VB6

Recommended Posts

Olá pessoal,

 

tenho um arquivo '.txt' e dentro do meu procedimento no VB6 preciso carregá-lo (sem abrir uma janela para escolha de tal arquivo), salvando-o numa matriz, com o mesmo número de linha e coluna que ele possue, para que eu possa manipulá-lo. O arquivo é deste formato:

 

-52.2921 -52.2732 -52.2542 -52.2352

-52.2921 -52.2732 -52.2542 -52.2352

-52.2921 -52.2732 -52.2542 -52.2352

-52.2921 -52.2732 -52.2542 -52.2352

-52.2921 -52.2732 -52.2542 -52.2352

-52.2921 -52.2732 -52.2542 -52.2352

 

 

No final devo ter, por exemplo:

mat(1,1)=-52.2921 e assim por diante.

 

O espaço de um valor para o outro é um TAB.

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ler o arquivo, dê uma procurada por filesystemobject (FSO). É a melhor para manipulação de arquivos.

 

Para montar seu array terá um pouco mais trabalho, pois antes de ler o arquivo você não sabe a quantidade de linhas e que ele possui não é mesmo? E em Vb6 você precisa definir o tamanho do seu array previamente. Para resolver isso, utilize "redim preserve". E para fazer com que cada tab seja uma posição, use o split.

 

Vai tentando deselvover alguma coisa, conforme forem aparecendo dúvidas vá postando.

 

Att,

 

Cláudio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da uma olhada nesse link Clique aqui

 

Eu tenho que abrir arquivos '.txt' que são gerados no matlab. Fiz uma rotina para leitura e armazenamento dos valores que estavam nesse arquivo, pois sabia o tamanho certo dele. Tenho dois arquivos identicos quanto a estrutura; Alterei a separação de um campo para o outro usando vírgula em vez de TAB, pois poderia ser algum erro nesse sentido, mas verifiquei que o '.txt' insere um caracter para marcar fim de linha e acho que ai é que está atrapalhando a leitura correta dos campos. O código que utilizei foi:

 

No formulário:

 

Open "C:\faculdade\tp\tabela.txt" For Input As 1

 

entrada = Input$(LOF(1), 1)

Call Fornece_Dados

Close #1

--------------

no módulo:

 

Sub Fornece_Dados()

 

Dim inicio, fim As Integer

 

 

'Rotina para pegar os dados de entrada (texto) e jogá-los em uma matriz de dados

dados = entrada

dados = Trim(dados)

dados1 = Split(dados, ",")

 

For i = 1 To 534

For j = 1 To 713

matriz_dados(i, j) = 0

Next j

Next i

 

b = 0

 

For i = 1 To 534

For j = 1 To 713

matriz_dados(i, j) = Val(dados1(B))

b = b + 1

Next j

Next i

End Sub

 

Alguma sugestão?

 

Aproveitando,

 

1)esse caminho que passo para abrir o arquivo, há alguma forma de eu por apenas o nome dele em vez do caminho completo? Falo isso porque se eu mudar de computador ou salvar a pasta com outro nome, eu tenho que ficar sempre alterando isso.

 

2) Se eu fizer a leitura de um arquivo .csv, excel seria mais tranquilo? Como faria?

 

3) Preciso ordenar vetores em ordem decrescente. Tem alguma função do VB pra isso, igual ele faz no ComboBox habilitando o 'sorted'?

 

Valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.