Récupérer une valeur bien précise d'un fichier texte

Fermé
sarah! Messages postés 45 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juin 2014 - Modifié par sarah! le 19/12/2013 à 14:57
sarah! Messages postés 45 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juin 2014 - 22 déc. 2013 à 12:44
Bonjour à tous

Je suis en train de développer une petite application avec eclipse et j'aimerai récupérer certain valeur de mon fichier texte pour appliquer un traitement .



J'ai un fichier texte (capteur.txt) avec des valeur
Date Time Température °C
2013-11-01 00:00:00 15

récupérer seulement le 15 par exemple pour appliquer ensuite un traitement.

merci pour votre aide

sarah
A voir également:

2 réponses

Doctor C Messages postés 627 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 19 février 2016 398
19 déc. 2013 à 18:33
Pour lire un fichier texte ligne par ligne en Java:
https://java.developpez.com/faq/javaio?page=Gestion-des-fichiers#LANGAGE_FICHIER_lireLigneParLigne

Pour obtenir une chaîne de caractères dans une autre chaîne de caractères, la fonction
substring()
est bien si tu connais la taille de tes différents champs:
http://www.tutorialspoint.com/java/java_string_substring.htm

Bonne chance!
1
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
19 déc. 2013 à 19:14
On fait du Java, pas du C ;p

Pour lire un fichier texte ligne par ligne, je conseillerais plutôt l'utilisation de la classe Scanner, les BufferedReader/readLine c'est très bas niveau... un peu comme les substring, on pourrait utiliser un split pour découper la ligne sur les espaces !

Scanner sc = new Scanner(new File("capteur.txt");

while (sc.hasNextLine())
{
    String line = sc.nextLine();
    String[] datas = line.split("\\s");

    if (datas.length < 3)
    {
        System.err.println("Line with bad format : "+line);
        continue;
    }

    String date = datas[0];
    String time = datas[1];
    String temp = datas[2];

    // ...
}

sc.close();
0
sarah! Messages postés 45 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juin 2014 3
20 déc. 2013 à 10:07
Bonjour et merci pour votre réponse
je débute en java est ce que vous pouvez me commenter le code SVP ,
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
20 déc. 2013 à 18:49
C'est de l'anglais y a pas grand chose à commenter...

Soit un scanner du fichier "capteur.txt", tant que le scanner a des lignes, mettre la ligne suivante dans line, découper la ligne* dans datas, si il y a moins de 3 données alors on affiche une erreur et on continue (on passe à la ligne suivante), sinon la date, le temps et la température sont respectivement le premier, deuxième et troisième morceaux des données.

Je n'ai fait que paraphraser les mots anglais du code...

* la seule difficulté c'est "\\s" qui représente un séparateur (un espace dans ton cas)
0
sarah! Messages postés 45 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 16 juin 2014 3
22 déc. 2013 à 12:44
merci beaucoup au faite mon bute est a partir de mon fichier texte qui contient :

Id_Cap_T Date de début L'heure_début L'heure_Fin Température
010001 2013-12-18 00:00:00 01:00:00 15
010001 2013-12-18 01:00:00 02:00:00 14
010001 2013-12-18 02:00:00 03:00:00 13
010001 2013-12-18 03:00:00 04:00:00 13
010001 2013-12-18 04:00:00 05:00:00 12
... .... .... ..... .......

010001 2013-12-18 23:00:00 00:00:00 15

générer des données alétoire de la manière suivante :
On suppose que le délai entre deux prises de mesures = 5 Secondes
on parcourant mon fichier je teste la température
si Température_début>Température_Fin ici c'est le cas 15>14 alors dans ce cas je démuni ma température un nombre alétoire pour générer des donnée chaque 5seconde jusqu'a atteindre le 14
par exemple:

010001 2013-12-18 00:00:00 15
010001 2013-12-18 00:00:05 14.95
010001 2013-12-18 00:00:10 14.83
010001 2013-12-18 00:00:15 14.60
... .... .... ....
010001 2013-12-18 00:00:55 14.20
010001 2013-12-18 01:00:00 14

sion si Température_début<Température_Fin j'ajoute une valeur alétoire ainsi de suite .
j'espère j'étais claire cette fois-ci
merci de votre aide
0