leitura e gravação de tabelas em arquivo C

1. leitura e gravação de tabelas em arquivo C

Ed Pess
edpes

(usa Ubuntu)

Enviado em 20/10/2012 - 07:37h

Ai BLZ.

Sou programador cobol/basic, estou iniciando na C, e esbarrei, na leitura de tabela em arquivo, como nao encontrei respostas nos livros e apostilas estou recorrendo a comunidade.
quero saber se existe alguma forma de acessar diretamente os elementos da tabela em disco, ou tenho que ler a string
e usar alguma manha para converter em tabela dentro do programa.
grato
Ed Pesz Otti


  


2. Re: leitura e gravação de tabelas em arquivo C

???
gokernel

(usa Linux Mint)

Enviado em 20/10/2012 - 13:34h


veja como ler um arquivo letra por letra:
http://www.cplusplus.com/reference/clibrary/cstdio/fgetc/

Ou getc ...

Ou para ler linha a linha, veja ( fgets )

Isso é o basico ...



3. Re: leitura e gravação de tabelas em arquivo C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 21/10/2012 - 01:19h

O que você chama de tabela?

C tem uma função para ler dados formatados, que é scanf(). Mas note que, para usá-la devidamente, é muito importante ler sua documentação com atenção (eu a considero uma das funções de uso mais complexo em toda a biblioteca padrão do C).


4. Re: leitura e gravação de tabelas em arquivo C

Ed Pess
edpes

(usa Ubuntu)

Enviado em 09/11/2012 - 13:05h


Tabela e uma matriz com elementos indexados.
reg[2] reg[2][3] strings multidemensionais.
em cobol declaramaos na file description, e trabalhamos com loopings muito parecido com o c.
O meu problema e que so estou conceguindo ler e gravar registros em disco elemento por elemento ou string inteira,

queria saber como faço pra gravar uma matriz bidimencional, e ler seus elementos. aleatoriamente pelo index, sem ter que ler a matriz inteira,
ou como faço para ler e gravar a matriz inteira, por que depois conceguiria acessar seus elementos.


5. Re: leitura e gravação de tabelas em arquivo C

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/11/2012 - 18:59h

Tenha em mente que são raras as arquiteturas capazes de operar sobre todas os elementos de uma matriz de uma só vez, porque isso implica não apenas ter um processador capaz de executar muitas operações ao mesmo tampo, mas também memória que permita acessos simultâneos. E isso fica ainda mais difícil no caso de operaçẽos de entra e saída de dados. Mesmo as máquinas que são capazes de tal feito costumam ter um limite máximo para as matrizes em que conseguem operar, de modo que matrizes maiores têm de ser divididas em blocos que caibam nesse limite, e a operação sobre a matriz original se dará somente pela operação sucessiva sobre os blocos menores que a compõem.

Também linguagens de programação de alto nível e/ou especializadas que permitem expressar operações com matrizes no fundo escondem essa divisão em blocos menores. Na prática, num computador que não é muito especializado, o que acontece é que esses blocos menores são quase sempre exatamente do tamanho de um elemento (no máximo, numa máquina dual core, por exemplo, um programa poderia ser construído de modo ter cada core operando paralelamente sobre metade da matriz, mas aida elemento a elemento).

C é uma linguagem simples e de baixo nível, pensada para um computador genérico (quase abstrato) que não supõe execução em paralelo. Ela não tem "ler matriz inteira de uma vez" porque, sendo de baixo nível e genérica, nem mesmo matriz como tipo de dados ela tem (o que se costuma chamar de "matrizes" em C são disposições de arrays de arrays de um dado tipo de elemento), de modo que você é obrigado a explicitar que está trabalhando com os blocos menores (i.e.: cada elemento) que compõem a matriz.

O que pode ajudar notacionalmente é fazer funções que recebam as matrizes como parâmetros e apenas internamente façam a manipulação necessária de cada elemento, mas exponham para o unoverso externo à função apenas a ilusão de que se opera sobre a matriz inteira de uma vez (que é o equivalente ao que fazem as linguagens especializadas acima mencionadas).


6. Ler Matrizes (tabelas) a partir de arquivos textos em C

Ed Pess
edpes

(usa Ubuntu)

Enviado em 30/05/2016 - 11:23h


Prmeiro Tabela ou matriz e a mesma coisa, tabela e o termo mais usado para programadores COBOL.
Tambem pode ser referenciado por Array.
Javeiros e C usam o termo Matriz ou Array. e a mesma coisa colunas e linhas.....
a solução que encontrei foi essa, leio todas as colunas de cada linha de uma só vez.

while( (fscanf(fp,"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", &ch1, &ch2, &ch3,&ch4,&ch5,&ch6,&ch7,&ch8,&ch9,&ch10,&ch11,&ch12,&ch13,&ch14,&ch15))!=EOF ){

funcionou beleza.
Grato pela ajuda...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts