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

Algorithmes et structures de données Discussion :

Parcours d'un fichier selon plusieurs crièteres


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 260
    Points : 131
    Points
    131
    Par défaut Parcours d'un fichier selon plusieurs crièteres
    Bonjour, d'habitude les algos ne sont pas trop un problème pour moi mais la j'arrive pas trop à trouver comment faire alors j'espère que vous pourrez m'aider.

    Alors j'ai un fichier plein de caractères, dans ce fichier j'ai une partie que je veux analyser mais je sais pas comment faire.

    Voilà la structure : l'id_partie me permet de trouver le début de la partie, codé sur 3 caractères. dans cette partie, j'ai, dans l'ordre :
    - la longueur du tableau ci-après
    - l'offset (la réfèrence) du plus vielle objet inscrit dans le tableau.
    - l'offset de l'objet le plus récent inscrit dans le tableau.
    - le tableau lui même.

    Pour chaque objet, j'ai dans l'ordre :
    - sa longueur
    - le détail de l'objet

    Le fonctionnement du tableau est un fonctionnement cyclique :

    On insère des données tant que le tableau n'est pas plein, lorqu'il est plein on retourne au début du tableau et on écrase les données.

    Ainsi, l'offset du début peut être supérieur à l'offset de fin et des données sont perdues quand le tableau est plein (logique).

    Le problème c'est que je ne vois pas comment faire une boucle qui prenne en compte tous les objet sans excpetion et qui ne sortent pas du tableau...

    Quelqu'un peut m'aider ? :/

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Points : 231
    Points
    231
    Par défaut
    Tu pourrais faire une boucle avec un index qui commence à l'offset de l'objet le plus vieux, et un compteur des données traitées, ça me paraît assez simple.
    Tu lis l'objet, tu fais ta cuisine avec, puis tu avances dans le tableau. Tes variables sont alors incrémentées comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    index <- (index + déplacement) mod longueur_tableau
    compteur <- compteur + déplacement
    Le déplacement correspond à la longueur de l'objet traité.
    Tu arrêtes la boucle quand tu t'es déplacé de la longueur des données : ld=offset_fin-offset_debut si offset_fin>=offset_debut , ld=longueur_tableau-offset_debut+offset_fin sinon.
    La condition d'arrêt est alors (compteur >= ld).
    Fais attention si un objet est "à cheval" entre la fin et le début du tableau : tu dois toujours lire tes données avec un "mod longueur_tableau".

Discussions similaires

  1. [Batch] Trier le contenu d'un fichier selon plusieurs critères
    Par ahu206 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 06/09/2010, 14h38
  2. Réponses: 2
    Dernier message: 25/02/2010, 13h13
  3. Réponses: 3
    Dernier message: 07/10/2009, 19h23
  4. [XL-2007] Report de donnée selon plusieurs criteres
    Par TaTsE dans le forum Excel
    Réponses: 2
    Dernier message: 05/07/2009, 09h53
  5. Génération d'un état selon plusieurs criteres
    Par nico62370 dans le forum IHM
    Réponses: 1
    Dernier message: 06/12/2008, 06h48

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