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 :

contrôler les données des champs d'un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre éclairé

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Billets dans le blog
    1
    Par défaut contrôler les données des champs d'un fichier
    bonjour à tous,
    je suis un peu debutant en java.
    j'ai un fichier csv comme ceci
    id;name;email
    1;kh;ka@gmail.com
    2;hsq;kg@gmail.com
    dfd;hfd;tt@yahoo.fr
    je voudrais définir une classe qui contiendra plusieurs structures.ces structures me permettra de vérifier que les colonne de mon csv sont bien formé.
    par example pour id verifier que (type int, longueur 2, précision 0),name(type String,longueur 200)
    Quelqu'un sait comment faire. merci de votre aide

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Bonjour,
    Citation Envoyé par pekre Voir le message
    Quelqu'un sait comment faire. merci de votre aide
    oui, tu ouvres le fichier tu le parcours ligne à ligne en ensuite tu vérifies chaque élément de la ligne !

    Plus concrètement, as tu codé quelque chose ?
    Sur quoi tu bloques exactement ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé

    Homme Profil pro
    informatique
    Inscrit en
    Avril 2013
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 280
    Billets dans le blog
    1
    Par défaut
    Bonjour voici ce que j'ai commencé!!
    mon problème se situe au niveau de verifier si la colonne est conforme à la structure.merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
       public static void main(String[] args) {
     
            BufferedReader in;
            String line = "";
            int count =0;
    String cvsSplitBy = ";";
            int posCol1 =0;
            int posCol2=0;
                ArrayList myList=new ArrayList();
                String[] tab ;
     
     
            try {
                in = new BufferedReader( new FileReader ("C:\\test.txt"));
                try {
                    while ((line = in.readLine()) != null) {
     
                        // use comma as separator
                        tab = line.split(cvsSplitBy);
                        count = tab.length;
                        for(int i=0;i<count;i++){
                            if (tab[i].equalsIgnoreCase("id")){
                               System.out.println("position " + i); 
                               posCol1 =i;
                            }
                            if(tab[i].equalsIgnoreCase("name"))
                            {
                               System.out.println("position " + i); 
                               posCol2=i;
     
                            }
     
     
                        }
     
                    }
                } catch (IOException ex) {
                    Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
                }
     
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

  4. #4
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    Bonjour,

    Déjà vue que l'entête est différente du reste alors tu dois la traiter différemment, ça évitera de traiter a chaque tour de boucle le cas de la première ligne !
    Donc avant le while tu fais quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                 line = in.readLine();
    	            	if (line == null) {
    	            		// traitement erreur fichier incorrect
    	            	}
    	            	tab = line.split(cvsSplitBy);
    	            	if (!tab[0].equalsIgnoreCase("id")) {
    	            		// traitement erreur fichier incorrect
    	            	}
    	            	if (!tab[1].equalsIgnoreCase("name")) {
    	            		// traitement erreur fichier incorrect
    	            	}
    	            	if (!tab[2].equalsIgnoreCase("email")) {
    	            		// traitement erreur fichier incorrect
    	            	}
    dans le while tu traites les cas normaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                     tab = line.split(cvsSplitBy);
    	                    if (!isNumeric(tab[0])) {
    	                    	// traitement erreur fichier incorrect
    	                    }
    	                    if (!isString(tab[1], 200)) {
    	                    	// traitement erreur fichier incorrect
    	                    }
                                ......
    Bien sur il faut définir le comportement des méthodes isNumeric et isString en fonction de tes critères.
    La boucle for ne sert a rien si tu as une structure figé avec a chaque fois trois colonnes !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Contrôler les formats des champs dans ODI
    Par raicolin dans le forum ODI (ex-Sunopsis)
    Réponses: 0
    Dernier message: 06/04/2016, 10h39
  2. [Drupal] Afficher les données des champs après soumission
    Par anchain dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 18/02/2013, 16h30
  3. Les données des fichiers klm ne s'affichent pas sous IE8
    Par seben dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 07/10/2009, 14h39
  4. [A-03] Afficher les données des champs Memo
    Par Frayer dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/02/2009, 21h26
  5. Réponses: 2
    Dernier message: 05/02/2007, 10h19

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