Jynjyt
Messages postés10Date d'inscriptionmardi 1 janvier 2008StatutMembreDernière intervention11 juin 2009
-
20 nov. 2008 à 20:51
anakin666
Messages postés5Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention22 novembre 2008
-
22 nov. 2008 à 02:24
salut!
je suis en train de faire un PTI en Java pour mon BTS mais il commence déja à me faire des misères!
dans la fonction supprimer, il y a comme un souci sur la comparaison des deux chaine de caractères. il m'affiche toujours le message comme quoi mon id n'existe pas. j'ai mis des traces a différents endroits, et cela montre bien que le problème est sur cetet fameuse condition. pourtant j'utilise la meme fonction dans une autre fonction de mon programme et ca marche très bien! je sais plus quoi faire!!!!! un peu d'aide ne serai pas de refus!
merci
System.out.print("\nNumero du spectacle a supprimer : ");
lecode = Cons.saisirChaine();
File spectacle = new File("spectacle.dat");
File spectacleTmp = new File("spectacletmp.dat");
RandomAccessFile monFichier = new RandomAccessFile(spectacle, "r");
RandomAccessFile monFichierTmp = new RandomAccessFile(spectacleTmp, "rw");
Spectacle unspectacle = new Spectacle();
// Tant que la fin de fichier n'est pas atteinte
while (monFichier.getFilePointer() < monFichier.length())
{
System.out.println("test1");
code = monFichier.readUTF();
nom = monFichier.readUTF();
date = monFichier.readUTF();
lieu = monFichier.readUTF();
// Si le numéro est celui recherché
System.out.println(lecode);
if (unspectacle.getCode().equals("HH"))
{
System.out.println("test2");
trouve = true;
}
else
{
System.out.println("test3");
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 21 nov. 2008 à 07:09
Certaines sources de problèmes possible :
* La casse de ta chaîne, : "hh" est différent de "HH" ! Utilise alors un equalsIgnoreCase.
* Les espaces à gauches et à droite de la chaîne :
" HH " est différent de "hh", utilise alors un String.trim avant la comparaison.
Jynjyt
Messages postés10Date d'inscriptionmardi 1 janvier 2008StatutMembreDernière intervention11 juin 2009 21 nov. 2008 à 07:40
// Réponse pour Dan:
petite erreur de ma part je me suis mal exprimée, je voulais dire qu'il ne rentre toujours pas dans la condition IF. le while fonctionne très bien, et les traces montrent bien que tous le fichier est parcouru (j'ai 3 enregistrements et j'ai 3 fois "test1" "test3" .....);
je n'ai pas de message d'erreur lors de la compilation la seule chose qui est écrite à part les traces c'est l'affichage "Spectacle non trouvé" (c'est à dire que trouve=false).
// Réponse pour Darksidious:
j'ai essayé le equalsIgnoreCase, ça ne marche toujours pas
le String.trim par contre me renvoie une erreur
" trim() in java.lang.String cannot be applied to (java.lang.String) String.trim(lecode); "
pourtant j'ai bien importé les bibliotheques de fonctions correspondantes.
Enfin bref, il se fout de moi ce programme!!
Si vous avez d'autres idées, j'écoute avce grand plasir!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Jynjyt
Messages postés10Date d'inscriptionmardi 1 janvier 2008StatutMembreDernière intervention11 juin 2009 21 nov. 2008 à 09:14
j'ai demandé a mon prof et finalement le probellem et résolu
en ft ct "unspectacle.getCode()" qui ne revoyé rien la chaine été vide car le ne stocké pas ce ke je lisais avec l'instruction code = monfichier;readutf
il manquais l'instruction unspectacle.setCode(code)