All pastes #496622 Raw Edit

Stuff

public c v1 · immutable
·published 2007-05-19 10:51 UTC
rendered paste body
#include <stdlib.h>#include <stdio.h>#include <string.h> #define BUF_LECTURE_FICHIER 300typedef struct bitmap bitmap;struct bitmap{	/* Le fichier */		FILE* fichier;		/* Bitmap file header */		char *file_type;	int file_size;	/* Bitmap info header */		int largeur;	int hauteur;};char *lire_fichier(FILE* fichier, int octet_debut, int octets_a_parcourir);int main(){	printf("\n-----[ AscUrPic ]----- \n");		/* Initialisation */		bitmap image = {NULL, NULL, 0, 0, 0, NULL};		/* Ouverture du fichier */		image.fichier = fopen("tux.bmp","r+");	if(image.fichier != NULL)	{				image.file_type = lire_fichier(image.fichier, 0, 2);		image.file_size = lire_fichier(image.fichier, 2, 4);				image.largeur = lire_fichier(image.fichier, 14, 4);		image.hauteur = lire_fichier(image.fichier, 18, 4);				/* Verbose */		printf("FileType : %s\nFileSize : %d\nSize : %dx%d\n", image.file_type, image.file_size, image.largeur, image.hauteur);				if( strcmp(image.file_type,"BM") )		{			printf("Erreur : Type de fichier invalide \n");			}		else 		{					}						fclose(image.fichier);	}	else 	{		printf("Impossible d'ouvrir le fichier\n"); 		}	return 0;}/* Permet de lire des parties du fichier */char *lire_fichier(FILE* fichier, int octet_debut, int octets_a_parcourir){	int i;	/* Petite vérification */	if(octets_a_parcourir > BUF_LECTURE_FICHIER)	{		printf("Buffer de lecture trop faible");		exit(0);	}	/* On prépare un espace mémoire pour placer la chaine */	char *chaine = malloc( (BUF_LECTURE_FICHIER+1) * sizeof(char) );		/* On se place à l'octet de début du fichier */	fseek(fichier, octet_debut, SEEK_SET);		/* On ajoute un à un les caractères */	for (i = 0 ; i < octets_a_parcourir ; i++)	{		chaine[i] = fgetc(fichier);	}		/* On termine proprement la chaine */	chaine[i+1] = '\0';		/* et on renvoit l'adresse d'où est stoquée la chaine */	return chaine;}