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

Entrée/Sortie Java Discussion :

Manipulation de fichiers tabulés


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut Manipulation de fichiers tabulés
    Bonjour,

    je souhaiterai créer une classe qui gèrerai et stockerai des fichiers tabulés.
    Lorsque je vais lire mon fichier, certaines colonnes seront des int, d'autres des double, des string, ... Bref je ne sais pas à l'avance ce que j'aurai comme type dans chacune de mes colonnes.

    Question : Y a t-il une bonne façon de faire ce genre de représentation et stockage ?

    Si non, mon idée est la suivante :
    - Lire une fois le fichier afin de déterminer le type de CHAQUE colonne (ça ne me plait pas, mais obligé... je peux très bien avoir que des int au début de ma colonne et me retrouver avec un double à la fin).
    - Prendre une liste dont chaque maillon stockera une colonne.
    - Allouer à chaque maillon un tableau du type correspondant à la colonne.
    Cela me semble très moche, mais pour l'instant c'est tout ce qui me passe par la tête (pas bien pleine je sais )

    Merci par avance...
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Moi je ferais de la manière suivante.

    Chaque cellule serait représentée par une classe (appelons là Cellule) qui stoquerait la cellule toujours au format String, donc aucun problème de typage lors de la lecture du fichier.

    Cette classe comporterait les méthodes enString, enInteger et enDecimal (par exemple). Pour que l'utilisateur puisse déterminer le type, elle comporterait assi isString, isInteger et isDecimal.

    Et voilà ! Finalement, le problème de l'usage du bon type de ta colonne est rejeté à l'utilisateur. Sympa, non ?

  3. #3
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    oui effectivement cela pourrait être une solution.
    Mais je me demande si cela est une si bonne chose pour les raisons suivantes :
    - Stocker en String est plus volumineux et il faudrait faire une convertion de type chaque fois que ce n'est pas un string.
    - L'avantage des tableaux typés est donc un gain de vitesse, mais il est vrai que la solution que j'ai proposé n'est pas très jolie.
    - Une colonne doit avoir un type UNIQUE et la solution d'un type par cellule rend la chose un peu risqué (mais à débattre).

    En tout cas cette solution est intéressante surtout que l'on manipulerait un tableau et non une liste puis un tableau.
    Donc est ce qu'une solution hybride ne serait pas de faire un tableau comme tu l'as annoncé, mais dont chaque case serait une interface Cellule. Puis on instancie chaque cellule avec une classe CelluleInt, CelluleDouble, ... Et on ajoute à tout cela un tableau une dimension qui stocke le type d'une colonne, bien qu'un instanceof sur la première cellule permettrait de savoir quel est le type.

    Cette proposition est à débattre et murir.
    Toute autre proposition est toujours la bienvenue.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Cela dépend un peu de l'usage prévu.

    Si l'utilisateur devra lire simplement les cellules une fois de temps en temps, alors je pense que ma solution est la meilleure.

    Mais s'il doit les lire et les relire fréquemment, si le nombre de cellules est élevé, alors il faut réfléchir un peu plus.

    Il existe des tas de possibilités d'optimisation. Mais, à mon avis, il faut d'abord réfléchir à ce qu'est ce tableau et ce qu'est cet (ou ces) utilisateur(s).

    Tant que tu en resteras au C'est un tableau que je sais pas quelles sont ses colonnes, tu feras des choses astucieuses, tu transmettras tes astuces à tes utilisateurs, mais, de fait, tu leur demanderas de faire tout le boulot.

  5. #5
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    Ca stockera plusieurs milliers de lignes dans mon fichier et il y aura de TRES TRES nombreux accés.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Alors, fais des choses astucieuses

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

Discussions similaires

  1. Manipulation de fichier (copier, supprimer, déplacer)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 21/10/2004, 10h26
  2. Manipulation des fichiers
    Par monsau dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2004, 17h45
  3. [LG]Manipulation de fichiers
    Par yffick dans le forum Langage
    Réponses: 29
    Dernier message: 10/01/2004, 15h04
  4. Manipulation de fichiers - gestion d'extensions
    Par ulukai dans le forum Linux
    Réponses: 13
    Dernier message: 02/07/2003, 15h28
  5. Réponses: 2
    Dernier message: 18/01/2003, 17h06

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