Chercher une sous chaine dans un fichier .txt

cs_elhadi213 Messages postés 10 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 25 mai 2012 - 25 déc. 2011 à 19:09
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 31 mars 2012 à 08:14
salut
je doit programmer une bouton qui doit extraire les x premier caractéres d'un mot entré arab(proclitiques possibles et x décrimente quand je ne trouve pas le proclitique) et les compares par des proclitiques existe dans un fichier .txt
voila le pgm du bouton:
try {
BufferedReader ff = new BufferedReader(new FileReader("C:/Users/ELHADI/Documents/proc-verbe.txt"));
x=5;
Mot2.setText("");
if (!proc_trouv){
while ((lig = ff.readLine())!= null) {
while (x>0){
if (Mot.getText().length()- x>=3){
proc_test = Mot.getText(0,x);
if (proc_test==lig){
System.out.println(proc_test);
Mot2.append("-"+proc_test);
proc_trouv=true;
}else{
System.out.println("nnnn");
proc_trouv=false;
}

}x--;}
}
}

j'ai réussi a extraire les x premiers caractéres mais quand j'ai fait la comparaison je ne trouve pas les proclitiques dans le mot

10 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
25 déc. 2011 à 21:46
Bonjour,

La ligne suivante : if (proc_test==lig) est une comparaison des références et non du contenu du mot. Teste ca :

String t1 = "texte";
String t2 = "texte";
System.out.println(t1==t2);//Retourne false car les références des objets sont différentes
System.out.println(t1.equals(t2));//retourne true cas le contenu des chaines est le même
System.out.println(t1.compareTo(t2)==0);//idem


Donc, remplace de == par un equals et ca marchera
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
27 déc. 2011 à 12:05
Alors, tu ne réponds pas ?

Tu parviens à faire ce que tu souhaites maintenant ?
0
cs_elhadi213 Messages postés 10 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 25 mai 2012
27 déc. 2011 à 18:47
salut
pardons pour le retard de ma réponse mais si tu veut dire (proc_test.equals(lig)) ne marche pas
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
27 déc. 2011 à 19:34
Quel est le type de proc_test et de lig ?

Sinon, essayes un .compareTo == 0 mais equals devrait fonctionner
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
27 déc. 2011 à 19:36
Tu as essayé le mode debug pour voir ce que contenaient tes variables, (ou de faire des sysout).

Il y a peut être un problème dans une autre méthode
0
cs_elhadi213 Messages postés 10 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 25 mai 2012
27 déc. 2011 à 19:41
pour proc_test et lig les sont de type String, mes chaines de caractères sont du langue arabe alors je pense que le problème posé est l'encodage du texte, j'ai essayé plusieurs encodage et le résultat quand j'utilise sysout est des point d'intérogation "???" (le nbr des point d'int = le nbr des caractères du mots proc_test)
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
28 déc. 2011 à 08:19
Sur ce point, je ne peux pas t'aider, je n'ai jamais travaillé avec un fichier écrit en arabe.

Sur ce site, c'est assez impressionnant le nombre de personnes qui ont des problèmes avec la langue arabe et l'encodage dans leur code java.

Si tu trouves une solution satisfaisante, et que tu en as envie, pourrais tu poster un tutoriel sur ce site expliquant comment gérer les fichiers écrits en arabe ?
0
cs_elhadi213 Messages postés 10 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 25 mai 2012
28 déc. 2011 à 10:35
merci beaucoup pour votre intéressante.... et pour le tutoriel bien sur Vous le trouverez ici au future
0
cs_elhadi213 Messages postés 10 Date d'inscription lundi 7 mars 2011 Statut Membre Dernière intervention 25 mai 2012
31 mars 2012 à 00:12
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
31 mars 2012 à 08:14
JE viens de voir que tu avais déposé une source. Merci, elle aiderais surement pas mal de monde.

a+
0