Récupération d'un champ dans un fichier
Résolu
remousse
Messages postés
299
Date d'inscription
Statut
Membre
Dernière intervention
-
ajp55 Messages postés 482 Statut Membre -
ajp55 Messages postés 482 Statut Membre -
Bonjour,
J'ai un fichier dans lequel le mot VALEUR peut être présent plusieurs fois.
Ce que je veux faire c'est récupérer les 34 caractères situés après le deuxième champ VALEUR rencontré.
J'ai fait ce bout de code mais cela ne fonctionne pas.
Pouvez-vous m'éclairer ?
J'ai un fichier dans lequel le mot VALEUR peut être présent plusieurs fois.
Ce que je veux faire c'est récupérer les 34 caractères situés après le deuxième champ VALEUR rencontré.
J'ai fait ce bout de code mais cela ne fonctionne pas.
Pouvez-vous m'éclairer ?
for (File fic : lst){ try{ System.out.println("Fichier en cours de traitement : " + fic.getName()); String line; String champ; int champCount = 0 ; BufferedReader br = new BufferedReader(new FileReader(fic)); while ((line = br.readLine()) != null) { int startF = 0; if ( line.indexOf("VALEUR") != -1){ champCount++; System.out.println("VALEUR n°" + champCount); startF = line.indexOf("VALEUR"); System.out.println("Index de début" + startF); } if (champCount == 2){ System.out.println("VALEUR 2 OK"); champ = line.substring(startF, startF + 34); FileUtils.write(outputPath,resultFile, champ); } } br.close(); } catch(FileNotFoundException exc) { System.out.println("File not found" ); } catch(IOException ioe) { System.out.println("Erreur IO" ); } }
A voir également:
- Récupération d'un champ dans un fichier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Creer un fichier .bat - Guide
7 réponses
je comprend pas ton code, tu a plusieurs fichiers dans lequel tu veux chercher le mot VALEUR ou t'a un seul fichier. Si t'a un seul fichier, a quoi te sert le
for (File fic : lst) lst est-il un tableau ou vector de File ?
En effet, j'ai plusieurs fichiers et dans chaque fichier je veux récupérer les 34 caractères après la deuxième occurrence de la chaine VALEUR.
C'est une méthode que j'utilise pour sauvegarder le champ que j'ai récupérer ça n'a rien à voir avec la lecture de mon fichier.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Un peu d'expressions régulières peut-être ?
for (File fic : lst) { Scanner sc = new Scanner(fic); sc.findWithinHorizon("VALEUR",0); String s = sc.findWithinHorizon("VALEUR[\\x00-\\xffff]{34}",0); sc.close(); System.out.println(s==null ? null : s.substring(6)); }La confiance n'exclut pas le contrôle