probleme:
j'ai un document " descript .texte" contenant 3 descriptions de 26 valeurs chacune tel que description1 ; description2 ;description 3 et j'ai un document"requete.txt" contenant l'une des ces 3 description ! comment je peu savoir si cette requete existe dans le document entier ou nn et renvoyer le rang
ci joint mon code erroné

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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import  java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import javax.swing.JOptionPane;
 
class Recherche
{
    public static int vectSize=26;
  public static void main(String[] argv)
 {
     double[]data = new double[26];
 
   try
   {
   data= LireRequete("req1.txt");
  System.out.println( Arrays.toString(data));
  JOptionPane.showMessageDialog(null, "L'indice  est " + LocaliserIndex(data,"description.txt"));
  // System.out.println(LocaliserIndex(data,"testdata.txt"));    
   }
   catch(Exception exp) { }
  }    
 static  double[] LireRequete(String filename) throws IOException
  {
       BufferedReader lecteurAvecBuffer = null;
 
    try
      {
	lecteurAvecBuffer = new BufferedReader(new FileReader(filename));
      }
    catch(FileNotFoundException exc)
      {
	System.out.println("Erreur d'ouverture");
      }
 
    double[] vecteur = new double[vectSize];        
    String ligne=lecteurAvecBuffer.readLine();
    char[] tableau = ligne.toCharArray();
    String elt="";
    int cpt=0;     
    for(int i=0;i< tableau.length;i++)
    {
    if (tableau[i] != ' ')
       elt=elt+tableau[i];
     else
            {
 
                 vecteur[cpt]=Float.parseFloat(elt);
                 cpt=cpt+1;
                 elt=""; 
 
 
            }
    }
 
    lecteurAvecBuffer.close();
    return vecteur;
  }
 
 
 static  int LocaliserIndex(double[] data, String filename) throws IOException
  {
       BufferedReader lecteurAvecBuffer = null;
 
    try
      {
	lecteurAvecBuffer = new BufferedReader(new FileReader(filename));
      }
    catch(FileNotFoundException exc)
      {
	System.out.println("Erreur d'ouverture");
      }
 
    double dis=0;
    double[] vecteur = new double[vectSize];        
    double distanceinitiale=100000000;
    String ligne=lecteurAvecBuffer.readLine();
    int indiceligne=1;
    int indice=0;
 
            char[] tableau = ligne.toCharArray();
            String elt=";";
            int cpt=0;     
            for(int i=0;i< tableau.length;i++)
            {
            if (tableau[i] != ' ')
                     elt=elt+tableau[i];
            else
            {
 
                 vecteur[cpt]=Float.parseFloat(elt);
                 cpt=cpt+1;
                 elt=""; 
 
 
 
            }
            if (cpt==6)
            {
                //System.out.println(Arrays.toString(vecteur));
                dis=distance(data,vecteur);
            if (dis<distanceinitiale)
            {
                distanceinitiale=dis;
                indice=indiceligne;
            }  
 
            cpt=0;
            indiceligne=indiceligne+1;
            }
 
            }
 
 
    lecteurAvecBuffer.close();
    return indice;
  }
 
 static  double  distance(double[] tab1, double[] tab2)
  {
   double dis=0;
  for(int j=0;j<tab1.length;j++)
      dis=dis+Math.abs(tab1[j]-tab2[j]);
      return dis;
  }
  }