Archive for novembro, 2009

Arquivos em C

Obs: Esse post será "revisitado" em breve.

Porque usar arquivos?
- Armazenar de maneira persistente as informações
- Armazenar uma grande quantidade de informações

Tipos de Arquivos:
- Texto
- Binário

Características dos arquivos Texto
- Arquivos seqüenciais
- Arquivos podem ser editados em qualquer editor
- Sua leitura é seqüencia pois deve ser feita do inicio ao fim

Características dos arquivos Binários
- Feita internamente pelo programa que gerou, através de uma seqüencia de bits
- O acesso pode ser feito de forma não seqüencial (randômica)

Como trabalhar com os arquivos em C
- Será necessário utilizar um "tipo" novo de variável, chamado FILE (stdio.h)
- Abrir o arquivo
- Trabalhar com o arquivo (ler/gravar)
- Fechar o arquivo

Um pequeno exemplo de escrita em arquivo texto

#include <stdio.h>

int main (int argc, char * argv[]) {
	// cria uma variavel que aponta para o arquivo
	FILE *arq;
	// abre o arquivo *função fopen*, retorna o endereço do arquivo para a variavel arq
	// Modo de abertura -> W
	arq = fopen("arquivo.txt","w");
	// utiliza a função fprintf, que é como a printf, porem dando saida para um arquivo
	fprintf(arq,"Esse é meu primeiro arquivo!\n");
	// fechando o arquivo
	fclose(arq);

	return 0;
}

Um pequeno exemplo de leitura em arquivo texto

#include <stdio.h>

int main (int argc, char * argv[]) {
	char c;
	// cria uma variavel que aponta para o arquivo
	FILE *arq;
	// abre o arquivo *função fopen*, retorna o endereço do arquivo para a variavel arq
	// modo de abertura -> R
	arq = fopen("arquivo.txt","r");
	// Pega caracter a caracter (com a funcao fgetc) joga na variavel c e depois imprime
	c = fgetc(arq);
	while (c != EOF) {
		printf("%c", c);
		c = fgetc(arq);
	}

	// fechando o arquivo
	fclose(arq);

	return 0;
}

 

Funções

FILE * fopen ( const char * filename, const char * mode );

[link]

Abre um arquivo.

Parâmetros:

filename

    Nome do arquivo

mode

    modo de abertura do arquivo:

    Modos de abertura

    r    Abre o arquivo para leitura. O arquivo precisa existir

    w    Abre um arquivo em branco para escrita. Se existir um arquivo com o mesmo nome ele será sobrescrito por um arquivo em branco.

    a    Abre um arquivo para "atualização". Operações de escrita serão adicionadas no final do arquivo. Se o arquivo não existir, será criado.

    r+    Abre o arquivo para leitura e escrita.

    w+    Cria um arquivo vazio para leitura e escrita.Se existir um arquivo com o mesmo nome ele será sobrescrito por um arquivo em branco.

    a+    Abre um arquivo para leitura e "atualização". Todas as operações de escrita serão feitas no final do arquivo. Se o arquivo não existir, será criado.

    OBS: Esses modos de abertura de arquivo são para arquivos textos, porém para proceder a operação em arquivos binários, basta acrescentar a letra b, ficando (rb, wb, ab, rb+, wb+, ab+) (pode-se usar também r+b, w+b, a+b, tendo o mesmo efeito)

Retorno:

    Se for bem sucedido, então retorna o ponteiro para o arquivo

    Se não, retorna um ponteiro nullo (NULL)

fprintf

int fprintf ( FILE * stream, const char * format, ... );

[link]

Escreve em um arquivo

Parâmetros

stream

    Ponteiro para o arquivo

format

    Idem as formatações do comando printf (%c %d …)

Argumentos adicionais

    Dependendo dos parâmetros de formatação da string, é necessário informar as variáveis que irão preencher as informações

Retorno

    Se OK, retorna o numero total de caracteres escritos

    Se falha, um numero negativo é retornado

fclose

int fclose ( FILE * stream ); 

[link]

Fecha o arquivo

Parâmetros

stream

    Ponteiro para o arquivo que será fechado

Retorno

    Se OK, o arquivo é fechado e o valor 0 é retornado.

    Se falha, EOF é retornado   

Segundo VideoCast – Continuação de Ponteiros

Nesse segundo videocast mostro um pouco mais sobre a Continuação de Ponteiros, Ponteiros de Ponteiros, Passagem de Valor por referencia e algo sobre o argc, argv[].

Preparem-se. 30 minutos ;)

Ponteiros (2a parte) from Carlos Eduardo Silva on Vimeo.

Google lança nova linguagem de programação –> Go

O Google anunciou esses dias uma nova linguagem de programação, chamada GO, muito interessante, nascida para ser rápida, tanto na compilação de códigos como na hora de programar.

Veja o promo vídeo:

E aqui vai a telinha do meu "primeiro arquivo .go"

goKadu2

Link: http://golang.org/

Behind the Code com Anders Hejlsberg

behind_hejlsberg Muito bacana a entrevista de Anders Hejlsberg para a Barbara Fox do Behind the Code, comentando sobre a carreira dessa pessoa que para a área de informática é de extrema importância, afinal, ele é o principal engenheiro por traz de várias coisas: Turbo Pascal, Delphi, Visual J++, WFC (Windows Foundation Classes), C# e participante CHAVE no desenvolvimento do framework .Net.

Entrevista em inglês.

Obs.: Em dado momento a Barbara Fox (Entrevistadora) pede para o Anders desenhar uma estrutura de dados que ele mais gosta/utiliza

Link: researchchannel.org