[JAVA] Extraire des lignes d'un fichier texte [Résolu/Fermé]

Signaler
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
-
Messages postés
5
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
5 septembre 2016
-
Bonjour,

Je suis actuellement en train d'essayer de récupérer des lignes d'un fichier texte.
Je récupère un fichier texte d'un switch :

GigabitEthernet1/1 is up, line protocol is up (connected)
Hardware is Gigabit Ethernet Port, address is 0022.5512.7b00 (bia 0022.5512.7b00)
Description: fr-scle-0x2-spare2
MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Full-duplex, 1000Mb/s, link type is auto, media type is 1000BaseSX
input flow-control is on, output flow-control is on
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:01, output never, output hang never
Last clearing of "show interface" counters never
Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 1000 bits/sec, 3 packets/sec
5 minute output rate 1000 bits/sec, 1 packets/sec
158750283 packets input, 52415245126 bytes, 0 no buffer
Received 99952970 broadcasts (50134602 multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 input packets with dribble condition detected
3605845 packets output, 299411824 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out

Mais les deux seules lignes qui m'intéresses sont celles que j'ai mises en gras.

J'ai donc commencer a réaliser un petit programme en Java, mais pour l'instant il ne fait que lire ligne par ligne mon fichier texte, auriez vous des idées pour extraires ces deux lignes ?
Voici mon fichier Java tel qu'il est pour l'instant :

import java.io.*;
import java.util.*;

class Lecture{

public static void main(String[] args){

String filePath = "Charge-fr-scle-0x2-spare1.txt";

try{

BufferedReader buff = new BufferedReader(new FileReader(filePath));

try {
String line;
// Lire le fichier ligne par ligne
// La boucle se termine quand la méthode affiche "null"

while ((line = buff.readLine()) != null) {
System.out.println(line);
}

buff.close(); //Lecture fini donc on ferme le flux
}

catch (IOException e){
System.out.println(e.getMessage());
System.exit(1);
}

}
catch (IOException e) {
< System.out.println(e.getMessage());
System.exit(1);
}
}
}

8 réponses


Salut,

   import java.io.*; 
   import java.util.*; 
   import java.util.regex.Pattern; //<<<<<<<<<<<<<<<<<<<<<<<<

   class Lecture{
      
      public static void main(String[] args){ 
      
         String filePath = "Charge-fr-scle-0x2-spare1.txt";
         String garder = "";
      
         try{ 
         
            BufferedReader buff = new BufferedReader(new FileReader(filePath)); 
         
            try { 
               String line; 
            // Lire le fichier ligne par ligne 
            // La boucle se termine quand la méthode affiche "null" 
            
            
               while ((line = buff.readLine()) != null) { 
                  System.out.println(line);
                
                // ajouter  ces 3 lignes <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                  int index = line.indexOf("put rate"); // partie commune des lignes à garder
                  if(index > 0) // si on trouve "put rate"
                     garder+= line + "|";
               	
               }
             
             // Ajouter les lignes qui suivent ... <<<<<<<<<<<<<<<<<<<<<<<<<
               //System.out.println("\n\ngarder = " + "\"" + garder + "\"");
               
               Pattern pattern = Pattern.compile("\\|"); // import java.util.regex.Pattern;
               String[] tabGarder = pattern.split(garder); // pour mettre les lignes conservées 
					                                            // dans le tableau tabGarder
               
               System.out.println("");
					
					// Résultat:
               for(int i = 0; i < tabGarder.length; i++)
               {
                  String lGardee = tabGarder[i];
                  System.out.println("lGardee: " + "\"" + lGardee + "\"");
               } // ... Jusqu'ici <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            
               buff.close(); //Lecture fini donc on ferme le flux 
            } 
            
               catch (IOException e){ 
                  System.out.println(e.getMessage()); 
                  System.exit(1); 
               } 
         
         } 
            catch (IOException e) { 
               System.out.println(e.getMessage()); 
               System.exit(1); 
            } 
      } 
   }


Cordialement,

Dan
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Merci beaucoup pour ta réponse, ça marche super =)
Juste une petite question : C'est quoi Pattern ? Une méthode java qui te permet de garder certaines lignes ?
s'il vous plaî , aidez-moi pour un programme de code java permet de:
1-lire un fichier texte et d'extraire les mots pour les afficher .les mots séparés par des espaces, virgules,points,symboles
2-affichage des mots sans considération des articles , des symboles, les verbes être ,....:le ; la, il est
3-les # mots doivent enregistrés dans un tableau: la création d'un tableau à partir de fichier texte , il faut aussi faire une fonction d'affichage de ce tableau pour vérifier s'il soit correctement rempli
4-réaliser une fonction qui compte l'occurrence ou la fréquence des mots dans le texte, mettez aussi ces informations dans tableau de fréquence
5-les mots clés extraits automatiquement de ce texte seront seulement les 10 mots de fréquence les plus importants , il faut trier les tableaux des mots clés et de fréquences selon les fréquence
Messages postés
7
Date d'inscription
dimanche 16 juin 2013
Statut
Membre
Dernière intervention
16 juin 2013

voila j'ai deux fichiers txt
fichier1.txt contient: id-doc / id-cluster / score
fichier2.txt contient: (num-cluster)/ id-doc
je dois faire un code java pour créer un nouveau fichier txt qui sera comme suit:
id-doc / (num-cluster) / score
quelqu'un aurait une idée?
ou proposer moi une autre méthode :(
Merci
Messages postés
5
Date d'inscription
vendredi 2 septembre 2016
Statut
Membre
Dernière intervention
5 septembre 2016

Bonsoir j'ai un fichier txt dont il y a
Service Nom de l'image PID Nom de la sessio Num�ro de s Utilisation
===== ========================= ======== ================ ===
Service BodetServiceTomcat.exe 1920 Services 0 325�208 Ko

moi je veux juste afficher la deuxieme ligne celle la "
Service BodetServiceTomcat.exe 1920 Services 0 325�208 Ko "
exactement je veux juste recuprer les valeurs entier " 325�208 Ko "

Re,

Pattern est une des 3 classes de l'API Regex (Les expressions régulières).
C'est la Représentation compilée d'un motif.

La seconde est la classe Matcher:
Moteur de recherche d'un motif dans une chaîne de caractères.

La troisième est la classe PatternSyntaxException
Lève l'exception IllegalArgumentException en cas d'erreur de sytaxe.

Pour en savoir plus, je te conseilles:
ftp://ftp-developpez.com/cyberzoide/java/regex.pdf

Mais en attendant voyons ce qui est fait dans ton cas:

int index = line.indexOf("put rate"); // partie commune des lignes à garder
//On regarde s'il existe la sous.chaine "put rate" (partie de input rate et output rate des lignes à garder) dans la ligne lue
 if(index > 0) // si on trouve "put rate"
 garder+= line + "|";
 // on fait une concaténation de cette ligne lue dans le String garder plus le caractère "|" qui sera le séparateur des lignes gardées


Ensuite voyons ligne de code par ligne de code

Pattern pattern = Pattern.compile("\\|"); // import java.util.regex.Pattern;
// on recherche dans la chaîne garder si le motif  "|" (mais "escapé" car "|" correspond à OU soit "\\|") existe
               String[] tabGarder = pattern.split(garder); 
// Avec split on éclate la chaîne garder dans le tableau tabGarder
               
               System.out.println(""); // pour séparer les lignes qui vont être affichées des lignes éventuelles déjà affichées

               // Résultat, affichage du contenu du tableau
               for(int i = 0; i < tabGarder.length; i++)
               {
                  String lGardee = tabGarder[i];
                  System.out.println("lGardee: " + "\"" + lGardee + "\"");
               }



Cordialement,

Dan
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Merci beaucoup pour tes explications, j'y voie beaucoup plus claire maintenant =)
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Désoler de te déranger à nouveau :s
J'ai modifier un peut le fichier pour obtenir les lignes dans un fichier texte, de façons à pouvoir modifier de nouveau ces lignes.
J'essaie de trouver un moyen de récupérer les informations chiffrés de la ligne excépté le 5. J'ai essayer d'utiliser la fonction Read() pour lire caractère par caractère et ensuite de sauvegarder le nombre dans un tableau si il en détecté un.
Mais apparement il y a un problème avec le fait que j'utilise un String.
J'ai commencer à faire ça :

=========================================================

import java.io.*;
import java.util.*;


class LectureChiffre{
public static void main(String[] args){
String filePath = "Premier.txt"; //Chemin du fichier texte à lire
String newPath = "Second.txt"; //Chemin du nouveau fichier texte

try{
BufferedReader buff = new BufferedReader(new FileReader(filePath));
BufferedWriter out = new BufferedWriter(new FileWriter(newPath));
try {
String line;
while ((line = buff.read()) != null){ // Lire le fichier ligne par ligne
//La boucle se termine quand la méthode affiche "null"
if(line == Integer){
System.out.println(line); // J'ai un problème avec mon IF, je ne connais pas la façons de la formuler pour dire : SI la ligne est est un chiffre ALORS
}
}
buff.close(); //Lecture fini donc on ferme le flux
out.close(); //Ecriture fini donc on ferme le flux
}
catch (IOException e){
System.out.println(e.getMessage());
System.exit(1);
}
}
catch (IOException e) {
System.out.println(e.getMessage());
System.exit(1);
}
}
}
valentin j'ai vu ton post et je suscite ton aide en fait je suis entrain d'effectuer mon projet de fin d'étude et je suis supposé développer un système de monitoring des équipements réseau ..
une première partie serai de récupérer le log du switch pour le stocker dans un fichier txt pour pouvoir le traiter par la suite comme t'a fait ligne par ligne j'ai vu que tu avais déjà le fichier log de ton switch sous forme d'un fichier txt comment tu l'a obtenu!!
HELP PLEASE!!!!!!!!!!!!!!!
On a récupéré ces 2 lignes:
"5 minute input rate 1000 bits/sec, 3 packets/sec "
"5 minute output rate 1000 bits/sec, 1 packets/sec 158750283 packets input, 52415245126 bytes, 0 no buffer "

Ne pas oublier qu'elles sont dans le tableau tabGarder.

Dis moi ce que tu veux en obtenir et écrire dans un .txt ce sera plus simple...
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
En faite j'aimerai bien obtenir (dans un fichier texte):
1000 3
1000 1
Je me suis dit que en faite il serait plus simple d'utiliser la variable split que tu ma montrer, de tout mettre dans un tableau, et de récupérer les deux parties qui m'interesses.
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
J'ai utiliser :
===========================
String[] decompose = line.split(" ");
int a = Integer.parseInt(decompose[6]);
out.write(a);
==========================
Quand je compile aucune erreur. Quand je lance le programme tout marche bien. Mais dans mon fichier texte, j'obtient "??" au lieu du nombre "1000"

Salut,

Quand on ne connaît pas encore REGEX;

Obtenir:
1000 3
1000 1
Avec:

"5 minute input rate 1000 bits/sec, 3 packets/sec"
"5 minute output rate 1000 bits/sec, 1 packets/sec 158750283 packets input, 52415245126 bytes, 0 no buffer"

La boucle devient:

for(int i = 0; i < tabGarder.length; i++)
               {
                  String lGardee = tabGarder[i];
                  System.out.println("lGardee: " + "\"" + lGardee + "\"");
                  
                  int ind1 = lGardee.indexOf("rate");
                  int ind2 = lGardee.indexOf("bits/sec");
                  int ind3 = lGardee.indexOf("pack");
               
                  if(  (ind1 > -1) && (ind2 > -1)  && (ind2 > -1 ) ) // sinon erreur
                  {
                     int bS = Integer.parseInt(lGardee.substring(ind1 + 5,  ind2 -1));
                     int pac = Integer.parseInt(lGardee.substring(ind2 + 10,  ind3 -1));
                     System.out.println("bS pac: " + bS + " " + pac);
                  }
               }


Sachant que le split est facile â comprendre...


Cordialement,

Dan

Re,

Oublions Python si bien soit-il mais qui dans ton cas est hors sujet...

Bravo ! ton code
String[] decompose = line.split(" "); 
int a = Integer.parseInt(decompose[6]);
out.write(a); 

est juste; sauf que pour l'instant on ne traite que le nombre de packets; mais il me faudrait le code concernant l'écriture dans le fichier out pour que je puisse voir ce qui cloche...

En attendant ta réponse je vais te montrer comment écrire le fichier.
Je vais le mettre dans ton code.

Dan
Salut,

Nouvelle version de ton code.

   import java.io.*;  
   import java.util.*;  

   class Lecture{ 
       
      public static void main(String[] args){  
       
         String filePath = "Charge-fr-scle-0x2-spare1.txt"; 
         String garder = ""; 
         PrintWriter ficOut; 
       
         try{  
          
            BufferedReader buff = new BufferedReader(new FileReader(filePath));  
          
           // try {  
            String line;  
            // Lire le fichier ligne par ligne  
            // La boucle se termine quand la méthode affiche "null"  
             
             
            while ((line = buff.readLine()) != null) {  
               System.out.println(line); 
                 
                // ajouter  ces 3 lignes <<<<<<<<<<<<<<<<<<<<< 
               int index = line.indexOf("put rate"); // partie commune des lignes à garder 
               if(index > 0) // si on trouve "put rate" 
                  garder+= line + "|"; 
                 
            } 
              
               //System.out.println("\n\ngarder = " + "\"" + garder + "\""); 
                
            /*Pattern pattern = Pattern.compile("\\|"); // import java.util.regex.Pattern; 
            String[] tabGarder = pattern.split(garder); // pour mettre les lignes conservées  
                                                         // dans le tableau tabGarder 
          */                  
          // ou bien entendu:                  
            String[] tabGarder = garder.split("\\|");  
               
            System.out.println(""); 
              
             // Résultat: 
            int rate = 0; 
            int pack = 0; 
            String ligneOut = ""; 
            String lGardee =  ""; 
              
            ficOut = new PrintWriter(new BufferedWriter(new FileWriter("out.txt"))); 
             
            for(int i = 0; i < tabGarder.length; i++) 
            { 
               lGardee = tabGarder[i]; 
               System.out.println("lGardee: " + "\"" + lGardee + "\""); 
               
               String[] decompose = lGardee.split(" +"); // " +" au cas où il y aurait plus d'un espace entre les rubriques
               rate = Integer.parseInt(decompose[4]); 
               System.out.println("rate = " + rate);     
               pack = Integer.parseInt(decompose[6]); 
               System.out.println("pack = " + pack); 
               ligneOut+= rate + " " + pack; 
               ficOut.println(ligneOut); 
               ligneOut = ""; 
            } 
         //try 
         //{ 
            ficOut.close(); 
            buff.close(); //Lecture finie donc on ferme le flux 
         } 
            catch (Exception e) 
            { 
               System.out.println(e.toString()); 
            } 
      } 
   } 


Cordialement,

Dan
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Ah ok merci, c'est bon à savoir ^^

J'aurai encore besoin de ton aide pour un problème d'ordre graphique que j'ai expliquer dans le sujet :
https://forums.commentcamarche.net/forum/affich-21482986-java-encadrer-un-jpanel#p21482986
Si tu pouvais m'aider sa serai simpa :D
Utilisateur anonyme
Ben oui, mais il faudrait que tu ajoute un un exemple avec 1 ou 2 pannels sur ce nouveau post.

J'arrête pour aujourd'hui il est 4:45 AM ici et je vais dormir 4 ou 5 heures avant de m'absenter jusqu'à environ 18 heures (1: Am pour toi si tu es en France : pas de profile pour savoir).

À mon retour je me connecte...

Dan
Messages postés
180
Date d'inscription
dimanche 30 janvier 2011
Statut
Membre
Dernière intervention
30 septembre 2012
8
Ok je vais faire ça ! Bonne nuit
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.util.regex.*;


public class LireText {
	
	public static void main(String[] args){ 
	

	InputStreamReader flog = null;
	LineNumberReader llog = null; {
	String chaine = "";
	PrintWriter ficOut = null;
	
	String MyLine;
	try{
		flog = new InputStreamReader (new FileInputStream( "C:\\oraclexe\\XE\\Chargement_DWH.txt") );
		llog = new LineNumberReader (flog);
		
		 
		 while((MyLine = llog.readLine()) !=null) {
			 
			 //Affichage de la ligne lu depuis le fichier
			  
			 System.out.println("ligne :  " + MyLine);
			 //chaine = MyLine+"\n";
			 
			 int index=MyLine.indexOf("d'enregistrements logiques ");
			 
			 if (index > 0) { // si on trouve d'enregistrements logiques
				chaine+= MyLine + "|";
			 }
			 System.out.println("\n\nchaine= " + "\"" + chaine + "\"");
			 Pattern pattern = Pattern.compile("\\/");
			
			String[] tabGarder = pattern.split(chaine);
			   System.out.println("");
			   
			//Resultat
			   
			   
			   int lus = 0; 
	           int Rejetés = 0; 
	           String ligneOut = ""; 
	           String lGardee =  ""; 
	            
	              boolean append = true;
	             ficOut = new PrintWriter(new BufferedWriter(new FileWriter("out.txt,append")));

	                 
				    for(int i = 0; i < tabGarder.length; i++) {
				    	 String LGardee = tabGarder[i];
				    	System.out.println("lGardee: " + "\"" + LGardee + "\"");
				    	
				    }
				    
	             
			   String[] decompose = lGardee.split(" +"); // " +" au cas où il y aurait plus d'un espace entre les rubriques
			   lus = Integer.parseInt(decompose[6]); 
			   System.out.println("EnrLus = " + lus);
			   Rejetés = Integer.parseInt(decompose[6]); 
			   System.out.println("EnrRej = " + Rejetés);
			   ligneOut+= lus + " " + Rejetés; 
               ficOut.println(ligneOut); 
               ligneOut = ""; 
            } 
            
		  
            ficOut.close();
	             
				 
			 
		 }catch (Exception e){
			 e.printStackTrace();
			 System.err.println(" erreur : "+e.getMessage());
			 System.exit(1);
		 }
		 

}

} }  




Bonjour, j'ai une exception de type java.lang.ArrayIndexOutOfBoundsException
pouvez vous m'aider s'il vous plait, et merci a l'avance.
danimo je compte sur toi lol
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
126
Les pratiquants de Java sont bien méritoires de se taper un langage pareil.

Personnellement, je trouve l'obligation d'écrire des codes pareils pour faire si peu tout à fait grotesque.

Pour faire ce qui était voulu dans la première demande, j'ai mis 1mn30 pour écrire le code suivant en Python, y compris pour créer le fichier avec les données copiées-collées:

with open('roro.txt','r') as f:
    what_i_want = [ line for line in f
                    if 'input rate' in line
                    or 'output rate' in line]

for item in what_i_want:
    print item


Ca donne

5 minute input rate 1000 bits/sec, 3 packets/sec 

5 minute output rate 1000 bits/sec, 1 packets/sec 158750283 packets input, 52415245126 bytes, 0 no buffer 



La ligne blanche entre les deux , c'est parce que les lignes capturées contiennent le newline.




Quant à la seconde demande, le code suivant m'a pris 6 minutes:

import re

pat = re.compile('((?:out|in)put rate)\s+(\d+\s+bits/sec),\s+(\d+\s+packets/sec)')

with open('roro.txt','r') as f:
    ch = f.read()
    li = pat.findall(ch)

for item in li:
    print item 


Ca affiche

('input rate', '1000 bits/sec', '3 packets/sec')
('output rate', '1000 bits/sec', '1 packets/sec')


On peut facilement coder autrement pour ne capter que 1000 et 3, et 1000 et 1. Il suffit de mettre les parenthèses autrement dans la RE:

(\d+)\s+bits/sec,\s+(\d+)\s+packets/sec


Pour des traitement de texte non simplistes, on ne peut pas se passer des expressions régulières.
valentin comment t'a réussi à obtenir ce fichier relatif à la configuration du switch stp? je suis entrain d'effectuer mon projet de fin d'étude et je suis supposé développer une application de monitoring des équipements réseaux je débute tout juste et une première étape de mon projet serait de pouvoir récupérer le log du switch dans un fichier txt pour pouvoir le traiter comme tu as fait ligne par ligne
slt, svp si vous pouvez m'aider de résoudre un problème dans mon application concernent les fichiers.c un problème de récupération des informations du fichiers dans une interface voilà la classe modification si vous pouvez m'aider répondez moi svp:



//evenement lors du click sur le button rechercher
public void Recherche1_actionPerformed() {
int num = 0;
reset();
try {
num = Integer.parseInt(idRecherche.getText());
}
catch (NumberFormatException ex) {
}
if (num <= 0) {
champs_pn.setVisible(false);
sud_pn.setVisible(false);

idRecherche_lb.setText("Num. Employé.: saisir un numero correcte!!");
idRecherche_lb.setForeground(Color.red);
}
else {
idRecherche_lb.setText("Num. Empl:");
idRecherche_lb.setForeground(Color.black);
index = rechercheEmp(num);
index=3;
if (index == -1) {
champs_pn.setVisible(false);
sud_pn.setVisible(false);

confirm.showMessageDialog(null,
"Aucun etudiant trouvé! Verifier le numero",
"Etudiant inexistant",
JOptionPane.WARNING_MESSAGE);
idRecherche.setText("");

}



else {
String filePath = "c::/hello.txt";
String garder = "";

try{

BufferedReader buff = new BufferedReader(new FileReader(filePath));

try {
String line;
// Lire le fichier ligne par ligne
// La boucle se termine quand la méthode affiche "null"


while ((line = buff.readLine()) != null) {
System.out.println(line);

// ajouter ces 3 lignes <<<<<<<<<<<<<<<<<<<<<<<<<<<<<
int index = line.indexOf("put rate"); // partie commune des lignes à garder
if(index > 0) // si on trouve "put rate"
garder+= line + "|";

}

// Ajouter les lignes qui suivent ... <<<<<<<<<<<<<<<<<<<<<<<<<
//System.out.println("\n\ngarder = " + "\"" + garder + "\"");

Pattern pattern = Pattern.compile("\\|"); // import java.util.regex.Pattern;
String[] tabGarder = pattern.split(garder); // pour mettre les lignes conservées
// dans le tableau tabGarder

System.out.println("");

// Résultat:
for(int i = 0; i < tabGarder.length; i++)
{
String lGardee = tabGarder[i];
System.out.println("lGardee: " + "\"" + lGardee + "\"");
} // ... Jusqu'ici <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

buff.close(); //Lecture fini donc on ferme le flux
}

catch (IOException e){
System.out.println(e.getMessage());
System.exit(1);
}

}
catch (IOException e) {
System.out.println(e.getMessage());
System.exit(1);



}
}
}
/*
Employé emp = (Employé)employees.elementAt(index);
nom.setText(emp.getNom());
prenom.setText(emp.getPrenom());
dn.setText(emp.getDn().getJour() + "/" + emp.getDn().getMois() + "/" +
emp.getDn().getAnnee());
// ancienSexe.setText(emp.getSexe());

*/
champs_pn.setVisible(true);
sud_pn.setVisible(true);
}

//evenement lors du click sur le button supprimer

//evenement lors du click sur le button modifier
public void modifier_actionPerformed() {
int ce=0,j = 0, m = 0, a = 0, niv = 0;
String n = "", p = "", s = "", f = "";
ate dn;
boolean etat = true;

n = champNomNv.getText();
if (n.equals("")) {
nom_lb.setForeground(Color.red);
etat = false;
}
else {
nom_lb.setForeground(Color.black);
}
p = champPrenomNv.getText();
if (p.equals("")) {
prenom_lb.setForeground(Color.red);
etat = false;
}
else {
prenom_lb.setForeground(Color.black);
}
//date
try {
j = Integer.parseInt(jour.getSelectedItem().toString());
m = Integer.parseInt(mois.getSelectedItem().toString());
a = Integer.parseInt(annee.getSelectedItem().toString());
}
catch (NumberFormatException ex) {

}
dn = new ate(j, m, a);
//sexe
if (masculin.isSelected()) {
s = "masculin";
}
else {
s = "feminin";
}


int resultat = confirm.showConfirmDialog(null,"Voulez vous vraiment modifier cet etudiant", "Attention",JOptionPane.YES_NO_OPTION);


}






//recherche d'un etudiant a partir de son num
public int rechercheEmp(int num) {


try {
FileReader fr = new FileReader("c:/eclipse/workspace/TOTO.txt");

BufferedReader br = new BufferedReader(fr);
String entree = "";
int Id = Integer.parseInt(idRecherche.getText());
String rech;
String[] ligne;
String[] id;
while((entree=br.readLine())!=null)
{
ligne = entree.split(";");

id = ligne[0].split(":");

if(Integer.valueOf(id[1])==Id)
{
System.out.println(entree);
System.out.println(Id);
index=Id;
return Id;
}
}}
catch(IOException ioe){
System.out.println("Exception du type IO!");

}

return index;


}


//retablir les champs
public void reset(){
nomNv.setText("");
prenomNv.setText("");
jour.setSelectedIndex(0);
mois.setSelectedIndex(0);
annee.setSelectedIndex(16);
masculin.setSelected(true);
feminin.setSelected(false);

}


@Override
public void itemStateChanged(ItemEvent arg0) {
// TODO Auto-generated method stub

}
}