Arquivo - extraindo e salvando coluna

Postado por Samuel Lima em 09 de Novembro de 2015  •  Comentários (0)  • 

Para criar este programa utilizei pelo menos cinco funções e duas macros
fundamentais para o bom desempenho, que foram as funções:

fseek(); Para posicionar o ponteiro de arquivo num byte específico
fscanf(); É para o arquivo o que scanf é para o console
putc(); Escreve um caracter em um arquivo
fgets(); pega uma linha inteira de um arquivo
feof();retorna verdadeiro se o final de arquivo foi atingido;

E as macros: SEEK_SET, SEEK_CUR.
Estas funções e estas macros estão no arquivo de cabeçalho stdio.h.
Estas macros trabalham como parâmetros na função fseek(); e são
perfeitas para posicionamentos, isto é, acesso aleatórios de dados.

SEEK_SET ==> Marca um início no arquivo
SEEK_CUR ==> Ponto corrente no arquivo
SEEK_END ==> Não foi utilizado neste programa,
marca o fim do arquivo.

A lógica para posicionar a leitura no início dos nomes das candidatas
foi um pouco confusa, note que estes nomes começam na linha seis do arquivo,
que começa em zero ( 0 ) e segue até a linha quinze ( 15 ).
Então, calculei o tamanho do arquivo e a posição de início dos nomes
como já citei acima, e coloquei como condição dentro de um laço while();
A cada ciclo do while(); a variável de controle é incrementada e um novo
valor é adicionado, este valor, corresponde ao total de caracteres de cada linha
contando com espaços, que obviamente o ciclo pula para a linha mais abaixo,
até que o arquivo chegue em sua última linha.
Más isto tudo foi porque teimei em fazer esta leitura da coluna dos nomes com fscanf(); Com fgets(); isto teria sido bem mais simples.
Um novo arquivo é criado, e recebe escritas dos caracteres dos nomes
com a função putc(); agora o arquivo é fechado e aberto novamente como leitura.
Esta foi uma breve descrição do funcionamento deste programa, que é indicado
a estudantes mais avançados em c.

Tags: C/C++ |

  • Download
  • Comentar
  • Comentários
blog comments powered by Disqus

Comentários ir para topo

Código fonte ir para topo