Buscar

Escreva uma subrotina que leia dados numéricos de um arquivo de texto e aloque em uma matriz no VBA. Os parâmetros dessa subrotina devem ser: a mat...

Escreva uma subrotina que leia dados numéricos de um arquivo de texto e aloque em uma matriz no VBA. Os parâmetros dessa subrotina devem ser: a matriz a ser alocada e o diretório+nome do arquivo. Dica: após descobrir quantos dados o arquivo de texto contém, informar ao usuário essa quantidade e solicitar a ele que informe (pode ser por InputBox) as dimensões da matriz a ser criada.


Essa pergunta também está no material:

Apostila-VBA
69 pág.

Metodologia Científica Humanas / SociaisHumanas / Sociais

💡 1 Resposta

User badge image

Ed Verified user icon

Segue um exemplo de subrotina em VBA que lê dados numéricos de um arquivo de texto e aloca em uma matriz: ``` Sub LerDados(ByVal matriz() As Double, ByVal arquivo As String) Dim f As Integer, i As Integer, j As Integer, n As Integer Dim linha As String, dados() As String 'Abre o arquivo para leitura f = FreeFile Open arquivo For Input As #f 'Conta quantos dados o arquivo contém n = 0 Do Until EOF(f) Line Input #f, linha dados = Split(linha, ",") n = n + UBound(dados) - LBound(dados) + 1 Loop 'Fecha o arquivo Close #f 'Solicita ao usuário as dimensões da matriz Dim linhas As Integer, colunas As Integer linhas = InputBox("Informe o número de linhas da matriz:") colunas = InputBox("Informe o número de colunas da matriz:") 'Verifica se a matriz tem tamanho suficiente para armazenar os dados If linhas * colunas < n Then MsgBox "A matriz não tem tamanho suficiente para armazenar os dados." Exit Sub End If 'Abre o arquivo novamente para leitura f = FreeFile Open arquivo For Input As #f 'Lê os dados do arquivo e armazena na matriz i = 1 j = 1 Do Until EOF(f) Line Input #f, linha dados = Split(linha, ",") For Each dado In dados matriz(i, j) = CDbl(dado) j = j + 1 If j > colunas Then j = 1 i = i + 1 End If Next Loop 'Fecha o arquivo Close #f 'Informa ao usuário a quantidade de dados lidos MsgBox "Foram lidos " & n & " dados do arquivo." End Sub ``` Para utilizar essa subrotina, basta chamar a função passando como parâmetros a matriz a ser alocada e o diretório+nome do arquivo: ``` Dim matriz(1 To 10, 1 To 3) As Double LerDados matriz, "C:\dados.txt" ``` Nesse exemplo, a matriz tem 10 linhas e 3 colunas, e o arquivo de texto está localizado em "C:\dados.txt". A subrotina irá contar quantos dados o arquivo contém, solicitar ao usuário as dimensões da matriz, verificar se a matriz tem tamanho suficiente para armazenar os dados, ler os dados do arquivo e armazenar na matriz, e informar ao usuário a quantidade de dados lidos.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais