begin process at 2012 05 30 18:18:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Fichier & Disque

 > 

taille Fichier avec malloc et realloc


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

taille Fichier avec malloc et realloc

vendredi 4 mai 2007 à 00:43:01 | taille Fichier avec malloc et realloc

halima

Au secours!!!

Slt j'aimerai creer un fichier (de mot) mais en allouant dynamiquement  la  la taille (avec malloc et realloc). un mot a au plus 100 caracteres, et l'affichage dois se faire par ordre alphabetique (avec qsort).Mon programme dois etre capable de prendre n'importe quel fichier en entree et afficher le contenu par ordre alphabetique.
Comment dois je faire???

 Merci de votre aide.
vendredi 4 mai 2007 à 12:07:27 | Re : taille Fichier avec malloc et realloc

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Pour la lecture du fichier, de nombreux sources sont présents sur ce site :

http://www.cppfrance.com/codes/MANIPULATION-FICHIER-LECTURE-ECRITURE_20335.aspx
http://www.cppfrance.com/codes/LIRE-LIGNE-FICHIER-TYPE-TEXTE-METHODE-SIMPLE_18345.aspx


vendredi 4 mai 2007 à 20:20:16 | Re : taille Fichier avec malloc et realloc

halima

Merci!!!
vendredi 4 mai 2007 à 21:37:54 | Re : taille Fichier avec malloc et realloc

emmatopiak

Salut,

Donc tu veux faire un tableau de mots, mais tu ne connais pas à l'avance le nombre de mots. La méthode la meilleure pour ça c'est la suivante :
- Tu commences avec un tableau ayant une capacité de x mots (x=10 ou plus, à toi de voir). Ca veut pas dire que le tableau contient x mots, ça veut dire qu'il peut en contenir au plus que x.
- dès que tu cherches à entrer un mot et que le tableau est plein (disons le (x+1)-ème mot), tu doubles la capacité du tableau, en faisant ton realloc donc. Ca va te garantir que tu passes pas ton temps à faire des realloc.

Pour te faciliter la vie, alloue 100 octets pour chaque mot. Ca te permettra de calculer facilement combien d'octets un tableau de x mots occupe.

 

@+++

samedi 5 mai 2007 à 22:08:51 | Re : taille Fichier avec malloc et realloc

halima

ok c exactement mon probleme mais je ne comprend pas bien le fonctionnement de realloc parceuqe ce que je fais ne marche pas.j'aimerai aussi utiliser qsort pour trier  ce tableau et l'afficher peut tu  m'aiclaircir  un peu avec un example.
char *tab[] est ma definition du tableau. Au depart  100 mots et 1mot a au plus 100 caracteres.
samedi 5 mai 2007 à 22:51:35 | Re : taille Fichier avec malloc et realloc

emmatopiak

Ok, je te fais le code, ainsi tu auras une idée..
Bouge pas.

Une autruche ne se cuit pas aux petits lardons.
samedi 5 mai 2007 à 23:06:23 | Re : taille Fichier avec malloc et realloc

emmatopiak

#include <stdio.h>
#include <stdlib.h>

#define SIZE 100

struct tableau {
    int number;
    int capacity;
    char ** mot;
};

struct tableau * tableauCreate(int initialCapacity);
void addWord(struct tableau * tableau, char * word);
void doubleCapacity(struct tableau * tableau);
void display(struct tableau * tableau);

struct tableau * tableauCreate(int initialCapacity) {
    struct tableau * tableau;
    tableau = (struct tableau *)malloc(1*sizeof(struct tableau));
    tableau->number = 0;
    tableau->capacity = initialCapacity;
    tableau->mot = (char **)malloc((tableau->capacity)*sizeof(char *));
    return tableau;
}
void addWord(struct tableau * tableau, char * word) {
    int i;
    char * mot;
    tableau->number = tableau->number+1;
    if (tableau->number>tableau->capacity) {
        doubleCapacity(tableau);
    }
    tableau->mot[tableau->number-1] = (char *)malloc((SIZE+1)*sizeof(char));
    mot = tableau->mot[tableau->number-1];
    i = 0;
    while (word[i]!='\0') {
        mot[i] = word[i];
        i = i+1;
    }
    mot[i] = '\0';
}

void doubleCapacity(struct tableau * tableau) {
    tableau->capacity = 2*tableau->capacity;
    tableau->mot = (char **)realloc(tableau->mot, (tableau->capacity)*sizeof(char *));
}
 void display(struct tableau * tableau) {
    int i;
    for (i=0; i<tableau->number; i++) {
        printf("mot %d : %s\n", i, tableau->mot[i]);
    }
}

int main()
{
    struct tableau * tab;
    tab = tableauCreate(2);
    addWord(tab, "alpha");
    addWord(tab, "bravo");
    addWord(tab, "charlie");
    addWord(tab, "delta");
    addWord(tab, "entrer");
    addWord(tab, "facile");
    display(tab);
return 0;
}

Une autruche ne se cuit pas aux petits lardons.

samedi 5 mai 2007 à 23:17:35 | Re : taille Fichier avec malloc et realloc

halima

Merci c'est exactement ce que je voulais comprendre.Sais tu comment fonctionne alors la fonction qsort pour trier la liste par ordre alphabetique?
mardi 8 mai 2007 à 10:05:34 | Re : taille Fichier avec malloc et realloc

emmatopiak

Salut,

Je vais pas tout te faire, allez sois un peu plus motivé et essaye de voir si tu peux pas faire quelque chose à partir de la fonction strcmp.

Une autruche ne se cuit pas aux petits lardons.
mardi 8 mai 2007 à 22:14:09 | Re : taille Fichier avec malloc et realloc

halima


ok jai fais et ca marche.j'ai meme plutot utiliser un tableau de cractere au lieu d'un fichier.Merci


Cette discussion est classée dans : fichier, taille, mot, realloc, malloc


Répondre à ce message

Sujets en rapport avec ce message

Malloc et mémoire affectée [ par Chop_chop ] Bonjour,J'ai un petit soucis quant à l'allocation de mémoire pour un char* avec l'utilisation de malloc.Voici mon code (bien allégé) :[CODE] char *fic taille d'un fichier sur le disque [ par germs13 ] salutje travaille sous vc6.0 mais pas en mfcje voudrais recuperer la taille d'un fichier sur le disque, pour l'instant j arrice seulement a recuperer QWORD ? [ par Ziman ] Bonjour,j'aimerai récupérer la taille d'un fichier, j'utilise donc GetFileSize() après l'avoir ouvert avec CreateFile(). Pour les petits fichiers, ben aide pour changer plice taille et couleur des caractères dans un fichier text [ par achatagogo ] salutj'ai besoin de votre aide pour changer de plice et la taille des caracrtères sur DEV c++.sous WIndowsje crée un fichier avec createFile() ensuite Rechercher un mot dans un fichier et afficher son contenu en C/C++ [ par M_didi ] Bonjour,encore moi et oui. Je suis toujours sur mn fichier de mesure. Voilà, je voudrais savoir comment on peut rechercher un mot et afficher son cont mettre un type"record" comme clé dans un map (C++) [ par babyboo1107 ] Bonjour,Voilà j'ai un type fichier qui est un record (string nom, __int64 taille,FILETIME date) j'aimerai créer un map mais il n'accepte pas que je lu Longueur chaine de caractère en C/C++ [ par Folcoche ] Bonjours,Je dois réaliser le jeu du pendu en Console windows, a partir du logiciel Dev C++.Je bute sur une soucis de longueur de chaine de caractère.V Reperer mot dans fichier [ par CicinhoRaul ] Bonjour je souhaiterais savoir comment reperer un mot dans un fichier.txt sachant par exemple qu'il est entre 2 caracteres.Exemple :Mon fichier contie Lecture d'un objet de taille variable à partir d'un fichier [ par chelheb ] Bonjour tout le monde !Je travaille actuellement sur un projet en MFC, et j'ai quelques problèmes en ce qui concerne la lecture à partir d'un fichier


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales