Ir ao conteúdo

Armazenar arquivos em vetores


Dani29

Posts recomendados

Postado

Olá, como faço para armazenar dados que estão contidos em um arquivo num vetor?Ex. Armazenar as seguintes instruções do arquivo num vetor

lda

128

add

129

sta

130

not

sta

131

hlt

Postado

Olá amigo,

isso que você está pedindo envolve um pouco de manipulação de memória. Fiz um exemplo simples em C de como funciona a leitura de arquivos e, o armazenamento dos dados contidos. Para fazer isso, precisaremos criar um ponteiro com duas ramificações. Tente entender o código e qualquer dúvida é só postar.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
FILE *arq;
char string[100];
int quantLinhas = 0;
char **linhas;
arq = fopen("texto.txt","r");
linhas = (char**) malloc(sizeof(char*));
if(arq){
while(fgets(string,sizeof(string),arq)){
quantLinhas++;
linhas = (char**) realloc(linhas,sizeof(linhas) * quantLinhas);
linhas[quantLinhas-1] = (char*) malloc(sizeof(char) * 100);
strcpy(linhas[quantLinhas-1],string);
printf("%s\n",linhas[quantLinhas-1]);
}
}
close(arq);
free(*linhas);
free(linhas);
return 0;
}

Grande abraço, espero ter ajudado.

Postado

Olá obrigada por responder! Mas não entendi esse teu código. Tem coisas ali que ainda nao estudei como o realloc e ponteiros. O que eu preciso mesmo é o seguinte: tenho um arquivo e nele esta os seguintes dados:

128

3

129

5

O que eu tenho que fazer é usar esse arquivo e mostrar na tela as posições de memoria de 0 a 255. Só que na memoria 128 tem que aparecer o 3 e na 129 tem q aparecer o 5. No caso ali o 128 e o 1289 sao posições de memoria. E não tenho ideia de como fazer!! Se puder ajudar,agradeço!

Postado

Agora quem não compreendeu fui eu. auiehaeiuhae, como assim mostrar na tela a posição de memória? Pelo que eu saiba, as posições de memórias são alocadas dinamicamente pelo kernel do sistema operacional, mostrar a posição de memória 128, ou 129 seria retornar um valor qualquer em uso ou não no sistema. Tem certeza que tem a ver com posição de memória?

Você não está falando de vetores não?

Postado

Desculpe,acho que me expressei mal. É que tenho que criar em c o simulador neander, não sei se tu conhece. O neander faz calculos usando o assembly que trabalha com posições de memória. Mas ali no problema eu posso usar vetor pra representar essa memoria. Então o que eu queria saber é como eu faria pra armazenar o valor 3 na posição 128,e a mesma coisa com o outro valor. E no arquivo de dados esta assim:

128

3

129

5

Já no arquivo de instruções aparece esses dados:

lda --> o lda é pra dizer q vai ser carregado um valor na posição 128

128

add --> o add é pra dizer q vai ser somado o valor do 128na posição 129

129

sta --> o sta é pra dizer q vai ser armazenado na pos 130 a soma dos num

130

not --> o not inverte o sinal do num que esta na posição 130

sta -->e depois armazena esse num invertido na posição 131

131

hlt -->o hlt é para encerrar o programa

Então eu gostaria de uma ajuda, de uma luz sobre como fazer isso funcionar... :wacko:

Coloquei um link aqui de um video mostrando como funciona o simulador neander.

[ame=

]
[/ame]

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!