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

Android Discussion :

Comment lire la ligne exact d'un fichier?


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 104
    Points : 66
    Points
    66
    Par défaut Comment lire la ligne exact d'un fichier?
    Bonjour à tous !

    Voilà je voudrais un coup de main !

    Je voudrais afficher la 1ère ligne de ce fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Processor	: ARMv7 Processor rev 2 (v7l)
    BogoMIPS	: 398.60
    Features	: swp half thumb fastmult vfp edsp neon vfpv3 
    CPU implementer	: 0x41
    CPU architecture: 7
    CPU variant	: 0x2
    CPU part	: 0xc08
    CPU revision	: 2
     
    Hardware	: SMDKC110
    Revision	: 0030
    Serial		: 3330d9a1419900ec
    Le chemin de ce fichier est : /proc/cpuinfo

    Voici mon code :
    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
     
    static  public long getProcessorInfo(){
    		try
    	    {
    	        File file = new File("/proc/cpuinfo");
    	            FileReader reader = new FileReader(file);
    	            BufferedReader buff = new BufferedReader(reader);
    	                String line;
    	                String name;
    	                String value;
     
    	        do
    	        {
    	                try
    	                {
    	                        line = buff.readLine();
    	                        name = line.substring(0, line.indexOf(":"));
    	                        value = line.substring(line.indexOf(":")+1, line.lastIndexOf(" "));
     
     
    	                        if (name.equals("Processor"))
    	                        {
    	                                processor = Integer.valueOf(value.substring(value.lastIndexOf(" ")+1, value.length()));	                                
    	                                break;
    	                        }
    	                }
    	                catch (Exception e)
    	                {
    	                        break;
    	                }
    	            }
    	            while(line != null);
     
    	        buff.close();
    	        reader.close();
    	    }
    	    catch (Exception e)
    	    {
    	    }
    		return processor;
     
    	}
    Le résultat affiché est 0!

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Salut,

    Les "try-catch" c'est pas que pour ennuyer les développeurs...
    As-tu tester ton code via le debugueur ? arrive t-il à bien ouvrir le fichier ?
    Il serait bon de logger un peu tes actions et surtout les exceptions.
    Cela te permettrai notamment de savoir si il n'y a pas d'erreur à la lecture.

    es-tu également sur de tes découpages de String ? Regarde au debugueur si les bonnes valeurs sont utilisés (donc éclate un peu ton code afin d'y voir plus claire, puis une fois que ça sera ok tu pourra refactoriser).
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  3. #3
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Je viens de tester ton code (en lui épargnant la lecture du fichier, je te laisse vérifier si tu n'as pas de soucis de ce coté là) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String line = "Processor	: ARMv7 Processor rev 2 (v7l)";
    String name = line.substring(0, line.indexOf(":")).trim();
    String value = line.substring(line.indexOf(":") + 1, line.lastIndexOf(" "));
    		
    if (name.equals("Processor")) {
    	Integer processor = Integer.valueOf(value.substring(value.lastIndexOf(" ") + 1, value.length()));
    	System.err.println("processor=" + processor);
    }
    Il y a l'air d'avoir un '\t' qui est inclus dans ton premier découpage de "name", du coup la 1ère assertion était fausse et donc ne rentrait même pas dans le "if".
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/04/2008, 00h38
  2. Réponses: 5
    Dernier message: 27/02/2006, 09h14
  3. lire une ligne précise d'un fichier
    Par loic_86 dans le forum Langage
    Réponses: 1
    Dernier message: 06/01/2006, 13h37
  4. Comment Lire une valeur à partir d'un fichier XML en C++?
    Par Hamdi Hedhili dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/12/2005, 10h09
  5. Réponses: 5
    Dernier message: 16/03/2005, 22h17

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