Páginas

Mostrando postagens com marcador C. Mostrar todas as postagens
Mostrando postagens com marcador C. Mostrar todas as postagens

13 de out. de 2012

Lendo Arquivo Texto e Escrevendo em Binário

A proposta deste artigo é demonstrar algumas técnicas de programação utilizando a linguagem C ANSI, esse tipo de conteúdo é muito cobrado nas disciplinas básicas de programação em várias instituições de ensino, espero que isso sirva para alguém.

Vamos construir uma lógica para carregar os dados de um arquivo (veja lista.txt) que encontra-se em formato texto plano e na sequencia gerar um arquivo binário com os mesmo dados. É possível perceber que a manipulação de arquivos binários é extremamente mais simples para algumas situações. Vamos ainda utilizar a alocação dinâmica de memória para a reserva das nossas variáveis. Vamos analisar agora a estrutura do arquivo lista.txt:

3
1
Adriano
Sepe
1000
S
2
Pedro
Silva
2000
N
3
Jose
Marconde
8000
S

Observe que a primeira linha corresponde a quantidade de habitantes que foram armazenados no arquivo, que neste exemplo foram três. Considere que na sequência do arquivos estão dispostos as informações dos funcionários conforme definido na estrutura (veja struct Funcionario). Vamos ao código do programa que fará a leitura dos dados do arquivo texto plano e escreverá em um arquivo binário:

A proposta realmente é avaliar algumas funções que dispomos para manipular arquivos de texto e binários. Como vocês podem perceber não existe uma justificativa para o algoritmo, apenas objetivo acadêmico.

Até uma próxima!

Alocação Dinâmica de Memória - Exemplo 4

Este exemplo apresenta uma comparação de códigos entre declaração estática de variáveis e a utilização de alocação dinâmica de memória. Cada linha entre as funções AlocacaoEstatico e AlocacaoDinamico tem de certa forma uma equivalência, vale resaltar que o modo dinâmica proporciona maior controle visto que uma estrutura de condição poderia determinar ou não a alocação, por outro lado a declaração estática não permite por respeitar as regras de alocação de váriaveis locais e globais.

Criando Arquivos Binário com C ANSI

Neste exemplo vamos verificar como podemos trabalhar com alocação dinâmica de memória e armazenamento em arquivos. Para simplificar, este exemplo apresenta o processo de criação de arquivo, já no próximo exemplo o processo de leitura será demonstrado. Segue código:

22 de nov. de 2011

Resolução da Revisão 2B 02

Em complemento ao exemplo Resolução da Revisão 2B 01 onde foi demonstrado como poderíamos consumir os dados armazenados. Para isso utilizamos novamente a alocação dinâmica de memória e a manipulação de arquivo, agora com o processo de leitura.

21 de nov. de 2011

Manipulação de Arquivos - Exemplo 7

Neste exemplo podemos ver a manipulação de arquivo texto e binário para operações de leitura. Segue código:

Manipulação de Arquivos - Exemplo 6

Neste exemplo podemos ver a manipulação de arquivo texto e binário para operações de escrita. Segue código:

17 de nov. de 2011

Manipulação de Arquivos - Exemplo 5

Neste exemplo vamos carregar os dados armazenados em arquivo a partir do exemplo anterior diretamente para uma varíavel de uma estrutura definida na aplicação, sem a necessidade de qualquer formatação. Isso demonstra a simplicidade de carregar os dados de um arquivo diretamente para qualquer porção de memória utilizando a função fread().

Manipulação de Arquivos - Exemplo 4

Neste exemplo vamos armazenar uma varíavel de uma estrutura definida na aplicação diretamente no arquivo, sem a necessidade de qualquer formatação. Isso demonstra a simplicidade de armazenar qualquer porção de memória em arquivo utilizando a função fwrite().

11 de nov. de 2011

Manipulação de Arquivos - Exemplo 3

Neste exemplo podemos verificar como a manipulação de bytes se dá de forma natural em C ANSI, isso porque as funções fread() e fwrite() são bem flexíveis.

5 de nov. de 2011

Manipulação de Arquivos - Exemplo 2

Este exemplo demonstra uma estrutura básica de uma aplicação para leitura de arquivo-texto utilizando funções da biblioteca padrão "Standard I/O", veja o exemplo:


Manipulação de Arquivos - Exemplo 1

Este exemplo aborda como criar um arquivo-texto e escrever dados utilizando a função fprintf(). Podemos perceber o quanto é prático o armazenamento e formatação de dados através dessa função, veja o exemplo:

Utilizando Enumeração em C ANSI

A utilização de enumerados permite criar um domínio de variável, isso é, permite criar valores possíveis para um tipo de variável. No exemplo abaixo utilizamos o recurso de enumeração para descrever as fases da vida de uma pessoa, podemos perceber que o fluxo do programa pode ser controlado a partir dessa informação sem o comprometimento da legibilidade. Segue exemplo:

20 de out. de 2011

Exemplo de Alocação Dinâmica de Matriz

Este exemplo apresenta como a manipulação de memória alocada dinâmicamente pode ser relativamente simples, visto do ponto que podemos trabalhar com o bloca de memória alocado diretamente como uma matriz uni ou multidimensional. Poderemos ver como ocorre a aritimética de ponteiros isso também para os dois casos. Vale lembrar que a manipulação direta de um ponteiro como matriz só é suportado para unidimencional, já para a manipulação como multidimencional deveremos fazer isso dentro de uma função que receba um parâmetro matriz muldimencional do tipo desejado.

18 de out. de 2011

Alocação Dinâmica de Memória - Exemplo 3

Esse exemplo descata principalmente o conceito de modularização, onde podemos ver através da função AlocaMemoria que a utilização de funções para esse conceito nos permite maior flexibilidade e facilidade de leitura do código. Segue exempo:

17 de out. de 2011

Alocação Dinâmica de Memória - Exemplo 2

Exemplo de utilização da técnica de alocação dinâmica de memória para manipulação de vetor de struct. Como destaque temos a função ImprimeFuncionario que demonstar a manipulação de um ponteiro para uma estrutura, é possível perceber que para desreferenciar este ponteiro devemos utilizar o operador ->. Essa sintaxe difere um pouco do operador * utilizado para variáveis de tipos primitivos.

12 de out. de 2011

Alocação Dinâmica de Memória - Exemplo 1