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 426 Date d'inscription Statut Membre Dernière intervention -
ajp55 Messages postés 426 Date d'inscription Statut Membre Dernière intervention -
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
- Ouvrir un fichier .dat - 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
aulieu d'utiliser ton FileUtils, déclare une ouputfile avant d'entrer dans ta boucle de for
et a chaque lecture fait un print dans le outputfile
PrintWriter outputfile = new PrintWriter(new FileWriter(filename));
et a chaque lecture fait un print dans le outputfile
outputfile.print(champ);, dc à la place de FileUtils, use ouputfile.print.....