IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

problème de taille et de mémoire


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut problème de taille et de mémoire
    Bonjour,

    Je débute en programmation et je bute sur un petit problème.

    J'aimerais savoir s'il est possible dans un fichier de connaître préalablement la taille des données que l'on va copier afin de les allouer dynamiquement (malloc?).
    Le fichier comprend de nombreuses données et le problème est de pouvoir sélectionner à l'intérieur exactement ce que je veux .

    Merci d'avance

  2. #2
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Bonjour.
    Si vous voulez parler de la taille totale du fichier, alors c'est possible (cf fseek et ftell).

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    Non, justement.

    Je crois que je me suis mal exprimée.
    j'ai un fichier source dans lequels je n'ai besoin que d'une partie des informations. Ces informations peuventcorrespondres à 1% ou 90% du fichiers suivant le fichier que je traite.

    La partie qui m'intéresse démarre toujours par une séquence connue, et comme je l'ai dit à une taille variable.
    Elle peut faire 200 lignes comme 10 000. Voilà pourquoi j'ai besoin de savoir sa taille avant de démarrer mon programme.

    Si quelqu'un a une idée pour m'aider, je suis preneuse.

  4. #4
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Comment déterminez-vous la longueur de la partie qui vous intéresse? S'agit-il d'un fichier texte?

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    vu l'exposé très flou du problème, les solutions seront floues...

    Cependant, d'après le peu que l'on peut apercevoir, il faudra faire appel à des alloc, ou realloc.

    Est-ce vraiment la TAILLE qui est inconnue, ou le NOMBRE ?

    Qu'est-ce qu'une DONNEE ?

    200 lignes ou 10 000 lignes c'est la taille de la donnée ou c'est le nombre ?

    [Edit]
    Emmanuel on l'a fait quasi en même temps
    [/Edit]

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par soria_t
    J'aimerais savoir s'il est possible dans un fichier de connaître préalablement la taille des données que l'on va copier afin de les allouer dynamiquement (malloc?).
    Si c'est un fichier binaire, oui avec fseek()/ftell(). Si c'est un fichier texte, ça va dépendre de l'implémentation.
    Sinon, on sait agrandir un tableau à coup de realloc() ou alors stocker dans des structures de données souples comme une liste chainée...

    Tout dépend de la structure du fichier... (texte, binaire, champs de taille fixes, variable...)

    Le fichier comprend de nombreuses données et le problème est de pouvoir sélectionner à l'intérieur exactement ce que je veux .
    Si le fichier est bien structuré, tu dois pouvoir faire ça sans avoir à le charger entièrement en mémoire... Il suffit de faire une lecture 'intelligente', c'est à dire en analysant les données pour y trouver le critère de recherche qui va bien...

    Une solution tordue est souvent le résultat d'un problème mal posé. Que veux-tu faire exactement ? Quelle est la structure du fichier ?

    EDIT :
    j'ai un fichier source dans lequels je n'ai besoin que d'une partie des informations.
    Quel est le critère de recherche ?
    Ces informations peuventcorrespondres à 1% ou 90% du fichiers suivant le fichier que je traite.
    Comment est déterminé la longueur de ces informations ?

    La partie qui m'intéresse démarre toujours par une séquence connue,
    OK, ça répond à une de mes question
    et comme je l'ai dit à une taille variable.
    Elle peut faire 200 lignes comme 10 000.
    Et ça, ça confirme ma 2ème question.
    Voilà pourquoi j'ai besoin de savoir sa taille avant de démarrer mon programme.
    Là, par contre, je ne vois pas le rapport.

  7. #7
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    Ces fichiers sont relativements bien structurés et comme je le disais, je connais la séquence de début des données qui m'intéresse. C'est comment le lire d'une façon intelligente qui pose problème.

    Je voulais essayer une boucle do while, mais je ne sais pas comment mettre un critère de début avant le décompte

    Merci de vos réponse.

  8. #8
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Comment savez-vous jusqu'où lire dans le fichier?

  9. #9
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    Argghhh

    je ne suis pas claire.
    Dans une séquence de protéine, le nombre d'atome est fixe mais ici je travaille sur des protéines de tailles différentes et donc qui peuvent être très différentes.

    Les données qui changent d'une protéines à l'autres c'est le nombres d'atomes, et tous ce qui les qualifie.
    Par bonheur chaque atome et ce qui le qualifie (coordonnées...) commence par la séquence ATOM.

    Ma question : comment transformer mon programme qui utilise un tableau statique en programme utilisant un tableau dynamique ? Il me semblait que pour ça ,il faut connaître le nombre d'atomes.

  10. #10
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par soria_t
    je ne suis pas claire.
    Ce serait beaucoup plus clair si tu postais un exemple de fichier (espérons que ce soit du texte) et un exemple de ce que tu veux extraire...

  11. #11
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Si j'ai bien compris, un fichier représente une molécule. Un fichier est composé de blocs de données de taille variable représentant chacun un atome, c'est cela?
    Dans ce cas, si le nombre d'atomes n'est pas précisé au début du fichier, je ne pense pas qu'il soit possible de déterminer le nombre d'atomes sans avoir lu l'intégralité du fichier. Cependant, j'ai du mal à saisir le problème que cela engendre.

  12. #12
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 100
    Par défaut
    alors voici un exemple de fichiers et surtout des informations que je recherche.
    Bon le serveur n'aime pas les fichiers en .pdb, je l'ai donc mis en .c
    Là-dedans ce qui m'intéresse est la parties atome et tous ses composants. (Je crois qu'il n'y a pas de problème pour lire le format pdb)
    Chaque atome est sur une ligne.

    Et d'un fichier à l'autre, on n'a pas le même nombre d'atomes. J'ai besoin de stocker les données dans un tableau de taille adapté. D'où malloc qui me demande le nombre d'atomes au départ.

    Ais-je été plus clair ?

    Merci beaucoup,
    human_trail.c

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de taille mémoire
    Par Mengué georges dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 06/12/2013, 11h56
  2. Réponses: 4
    Dernier message: 02/02/2009, 17h21
  3. Graphisme, imagerie problème de taille mémoire ?
    Par colorid dans le forum Langage
    Réponses: 8
    Dernier message: 23/02/2008, 08h37
  4. [swing][JComboBox]Problème de taille
    Par n!co dans le forum Composants
    Réponses: 8
    Dernier message: 06/03/2004, 10h53
  5. [langage] Problème de taille de fichier à mettre dans
    Par And_the_problem_is dans le forum Langage
    Réponses: 10
    Dernier message: 13/08/2002, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo