Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2785 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Capture d'un entier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Capture d'un entier

n°1174769
oncle jule​s
Posté le 11-08-2005 à 17:16:37  profilanswer
 

Salut à tous.   :)  
J'implémente un soft qui parse les données d'un fichier pour les réécrire dans un second fichier avec quelques modifications.
Voici un extrait du fichier à parser.
 
[#ff1c00]11 3 32 0 7 40  
[#1c00e2]5520
1 1 1 5 5
32* COFI v.2 IDEAS v.11 *  
07/13/05 VVPR 1 0 0
7 5 20 5 138 0 1 1  
40 0.6978044820836787E+10 0.1238774153323844E+11 0.1901403936761112E+11  
0.3445260201620660E+11 0.4048589907678004E+11 0.6673256768859634E+11  
0.1133983935650789E+12 0.1266392523039663E+12 0.2253733675547690E+12
0.3181668544154566E+12 0.5255469213822878E+12 0.6458133052264467E+12
0.7453467372541699E+12 0.1097179188940539E+13 0.1184914291018450E+13
0.1680306774352798E+13 0.1888042254866058E+13 0.2418814107784721E+13
0.2931585857945411E+13 0.3329695498910833E+13
5520 0.4877913475036621E+01 0.0000000000000000E+00 0.4864388942718506E+01
0.0000000000000000E+00 0.4849582672119141E+01 0.0000000000000000E+00
0.4833709239959717E+01 0.0000000000000000E+00 0.4816733837127686E+01
0.0000000000000000E+00 0.4793504714965820E+01-0.3685846924781799E+00
0.4763874053955078E+01-0.3189862668514252E+00 0.4729751586914063E+01
-0.2703143358230591E+00 0.4559299945831299E+01-0.7672241926193237E+00
0.4537451267242432E+01-0.7189077734947205E+00 0.4514544963836670E+01
-0.6711576581001282E+00 0.4490724086761475E+01-0.6236515641212463E+00
0.4465955257415772E+01-0.5764250159263611E+00 0.4178462982177734E+01[/#ff1c00][/#ff1c00]
 
 
Je veux stocker la première valeur (un entier, 5520) de la seconde ligne car elle code le fichier.  
J'ai donc défini un BufferedReader reader ...  
J'ai sauté la première ligne avec un readLine() sans stocké sa valeur.  
Je suis donc à présent sur la seconde ligne.  
Naïvement, j'ai pensé qu'écrire  
 
int num;  
num=reader.read();  
 
capturerait le 1er caractère autrement dit le 1er entier qui m'intéresse; hélas ce n'est pas le cas. J'ai affiché ce que ces lignes capturaient réellement : il s'agit du 3ème entier de la 1ère ligne (32)  
 
Je ne vois vraiment pas pourquoi il me prend la 3ème valeur de la 1ère ligne alors que je l'ai sauté ... enfin je pense  
De plus j'ai essayé d'enlever le 1er readLine() et d'en rajouter pour voir si c'était toujours le cas, et c'est effectivement toujours le cas.  
  :??:  :whistle:  :fou:  :cry:      
 
voici le code  
 
public String parse_vvp3() {  
   String tmp3 = "";  
   int num;  
   try {  
BufferedReader br = new BufferedReader(new FileReader(f_atila));  
BufferedWriter bw;  
bw = new BufferedWriter(new FileWriter(f_sysnoise,true));  
br.readLine();br.readLine();br.readLine();br.readLine();  
num = br.read();  
System.out.println(num);  
String numero = new String();  
numero = numero.valueOf(num);  
System.out.println(numero);  
br.readLine();  
while ((tmp3 = br.readLine()) != null) {  
 tmp3 = br.readLine();  
 bw.write(tmp3 + "\r" );  
  if ( (tmp3 = br.readLine()).startsWith("5520" )) {  
  System.out.println("thales" );  
  br.close();System.exit(0);  
 }  
}  
br.close();    
   }//fin try  
   catch (Exception ex) {  
     JOptionPane.showMessageDialog(null,  
      "Erreur lors de la lecture vvp3 du fichier " +  
      f_atila.getName(),  
      "Erreur",  
      JOptionPane.ERROR_MESSAGE);  
   System.exit(0);  
   }  
   return tmp3;  
 }//fin

 
Est-ce que la méthode est appropriée ??
 
Merci pour votre aide  
++  :jap:

mood
Publicité
Posté le 11-08-2005 à 17:16:37  profilanswer
 

n°1175060
Profil sup​primé
Posté le 12-08-2005 à 10:31:33  answer
 

Tu fais un readLine(), là ok, ça passe à la ligne suivante.
la méthode read() sans paramètre retourne un entier et non une String !!!!!!!!!!!!
Ton code est assez confu. Pourquoi ne pas parcourir le fichier ligne ( en stockant de la sorte String ligne=br.readLine() ) et utiliser la classe StringTokenizer pour isoler les différents éléments composant la ligne ?
Un petit tour sur les tutoriels serait bienvenu.
Bon courage.
 

n°1175062
Nicolas_75
Posté le 12-08-2005 à 10:34:47  profilanswer
 

Je viens d'exécuter ton code. Il fait exactement ce qui tu lui demandes. Il saute 4 lignes, puis lit le premier caractère (c'est le rôle de BufferedReader.read()), et renvoie le code ASCII 55, c'est-à-dire "7".  :wahoo:


Message édité par Nicolas_75 le 12-08-2005 à 10:38:44
n°1175072
sircam
I Like Trains
Posté le 12-08-2005 à 10:42:27  profilanswer
 

Les streams, ça se ferme dans un bloc finally, pas à la fin du try.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Capture d'un entier

 

Sujets relatifs
capture webcam pour mac os et windowsCapture d'écran
[C] récupérer les arguments de argv en entier?Faire correspondre une chaine de caractère et un entier.
Pointeur + Tableau : récupération d'un entierconverssion entier -> string avec "Integer'image"
scanner un texte entiermes formulaires se passent tout sauf les entier..
differencier une décimal d'un entier ?concatener chaine + entier
Plus de sujets relatifs à : Capture d'un entier


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)