Bonjour a tous et a toutes,

Contexte :

Je suis actuellement dans l'élaboration d'un programme de recherche.

La fonction principale de ce logiciel est l’administration d’une interface graphique utilisée pour la recherche et le classement des rapports. La recherche s’effectue donc avec trois mots clés à rentrer par l’utilisateur avant de lancer la recherche.

Ce que je cherche :

Une fonction recherche qui se sert donc des mots clés insérés pour les chercher dans une multitude de rapport (plus de 2000 généralement en .xls, .doc, .pdf) via un "open file" qui ferai une lecture de chaque fichier en boucle et affiche chaque fois ou un des mot clé est trouvé

1. Lancer la boucle genre : while (array.strlengh) loop
2. Vérifier les donnée : if motclé1==.... && motclé2 ==... && motclé3 ==
3. Si elles y sont on incrémente et on stock l'affichage
4. a la fin on affiche toutes les rapports qui contiennent les mots clés dans une liste cliquable (lien vers le rapport)

Voici mon code d'affichage actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
 
package ui;
 
import java.awt.Font;
 
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
 
public class Recherche_LAB {
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_2;
 
	/**
         * @wbp.parser.entryPoint
         */
	public void fenetre(){
		JFrame fenetre=new JFrame();
		fenetre.setVisible(true);
		fenetre.setSize(330, 420);
		fenetre.setLocationRelativeTo(null);
		fenetre.setTitle("Recherche des rapports du LAB");
		fenetre.getContentPane().setLayout(null);
 
		JLabel lblMoteurDeRecherche = new JLabel("Moteur de recherche des Rapports du LAB");
		lblMoteurDeRecherche.setFont(new Font("Tahoma", Font.BOLD, 12));
		lblMoteurDeRecherche.setHorizontalAlignment(SwingConstants.CENTER);
		lblMoteurDeRecherche.setBounds(0, 0, 314, 58);
		fenetre.getContentPane().add(lblMoteurDeRecherche);
 
		JPanel panel = new JPanel();
		panel.setBounds(0, 164, 314, 38);
		fenetre.getContentPane().add(panel);
 
		JLabel lblMotCl = new JLabel("Mot cl\u00E9 1 :");
		lblMotCl.setHorizontalAlignment(SwingConstants.CENTER);
		panel.add(lblMotCl);
 
		textField = new JTextField();
		textField.setHorizontalAlignment(SwingConstants.CENTER);
		panel.add(textField);
		textField.setColumns(10);
 
		JPanel panel_1 = new JPanel();
		panel_1.setBounds(0, 201, 314, 38);
		fenetre.getContentPane().add(panel_1);
 
		JLabel lblMotCl_1 = new JLabel("Mot cl\u00E9 2 :");
		panel_1.add(lblMotCl_1);
 
		textField_1 = new JTextField();
		textField_1.setHorizontalAlignment(SwingConstants.CENTER);
		textField_1.setColumns(10);
		panel_1.add(textField_1);
 
		JPanel panel_2 = new JPanel();
		panel_2.setBounds(0, 238, 314, 38);
		fenetre.getContentPane().add(panel_2);
 
		JLabel lblMotCl_2 = new JLabel("Mot cl\u00E9 3 :");
		panel_2.add(lblMotCl_2);
 
		textField_2 = new JTextField();
		textField_2.setHorizontalAlignment(SwingConstants.CENTER);
		textField_2.setColumns(10);
		panel_2.add(textField_2);
 
		JButton btnValider = new JButton("Valider");
		btnValider.setBounds(140, 305, 89, 23);
		fenetre.getContentPane().add(btnValider);
 
		JLabel lblNewLabel = new JLabel("");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setIcon(new ImageIcon(Recherche_LAB.class.getResource("/images/logo.jpg")));
		lblNewLabel.setBounds(0, 54, 314, 74);
		fenetre.getContentPane().add(lblNewLabel);
	}
 
}

Et voici ce que j'ai trouvé concernant ma recherche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
package nf;
 
import java.io.File;
import java.util.ArrayList;
 
 
public class RechercherFichier {
 
	private ArrayList<String> al;
 
	public void valider (String args[]) {
		this.al = new ArrayList<String>();
 
		chercher_fichier(new File("C:\\"),"fichier.extension");
 
		int n = al.size();
		for(int i=0;i<n;i++) {
			System.out.println(al.get(i));
		}
	}
 
	private void chercher_fichier(File f,String s) {
		if(f.getName().equals(s)) al.add(f.getPath());
 
		File[] liste_fils = f.listFiles();
 
		if(liste_fils!=null)
		{
			for(int i=0;i<liste_fils.length;i++)
			{
				chercher_fichier(liste_fils[i],s);
			}
		}
	}
 
}
Voila merci de votre aide