Comment convertir un String en Boolean ?

MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004 - 23 mars 2004 à 10:51
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 - 25 mars 2004 à 20:20
Bonjour,

Voilà, mon programme lit des informations d'un fichier xml, qui ne contient que des 1 et des 0.
Donc, après lecture du xml, je voudrai convertir ces 1 et 0 par des boolean.
Ayant fait :
boolean poteau, haut, bas, gauche, droite;

Poteau = Boolean.valueOf(((Node)textPoteauList.item(0)).getNodeValue().trim());

Haut = Boolean.valueOf(((Node)textUpList.item(0)).getNodeValue().trim());

Bas = Boolean.valueOf(((Node)textDownList.item(0)).getNodeValue().trim());

Gauche = Boolean.valueOf(((Node)textLeftList.item(0)).getNodeValue().trim());

Droite = Boolean.valueOf(((Node)textRightList.item(0)).getNodeValue().trim());

en sauvegardant, j'obtien ce message :
Type mismatch: cannot convert from java.lang.Boolean to boolean.

Quel est le probleme ??
A voir également:

32 réponses

cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
23 mars 2004 à 12:09
Essaie plutôt ceci:
boolean mybool (myString.compareTo("1") 0);
CQFD

NB: Vérifie que ==0 c'est quand les 2 string sont =, je suis plus certain...

B@ron {EU.BELGIUM}
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
23 mars 2004 à 14:58
:big) Neodante :big)

Try this :

Boolean.getBoolean(taString)

... regarde la javadoc si besoin est ...
@+

[Responsable www.neogamedev.com]
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
23 mars 2004 à 15:06
:big) Neodante :big)

Toutes les classes enveloppes ont des wrapper des autres types ...
@+

[Responsable www.neogamedev.com]
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
23 mars 2004 à 18:58
GodConan :clown)

;o) vi autrement la methode que tu use toi il faudrai que t chaine soit = a "true" ou "false" ;o) ce ki n est pas le cas...

++
0

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

Posez votre question
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
23 mars 2004 à 19:09
A Neodante => J'ai essayé ta méthode du Boolean.getBoolean(String), mais malheureusement, elle ne recoit rien.

Je crois que le probleme viendrait des 1 et 0 contenu dans le xml.
Donc, comme l'a dit GodConan, sa devrait venir des 1 et 0 que je devrait mettre à true ou false.

Mais vu qu'il y a 255 balise dans mon xml, je ne suis pas près d'y arrivée, je devrait complètement modifier mon générateur xml.

Si quelqu'un à d'autre proposition pour éviter une restructuration de mon xml, je suis à vous.

PS : pour l'instant, j'ai utiliser des integer au lieu des boolean.
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
23 mars 2004 à 19:17
GodConan :clown)

ben fai comme la di tds test ;o)

Poteau = ((Node)textPoteauList.item(0)).getNodeValue().trim().compareTo("0")==0 )?true:false;

pas dur ;o) a une parenthese pret sa doi etre sa a moin que "0" soit false je sai jamais ;o)

++
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
23 mars 2004 à 19:53
:big) Neodante :big)

Yep à problème simple, solution simple ... pour le Boolean c'est marquer dans la javadoc ce qu'il fait ... donc 0 ou 1 ... pas bon ... sinon une petite fonction (méthode quoi !) fait tout aussi bien l'affaire !!!
@+

[Responsable www.neogamedev.com]
0
cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
24 mars 2004 à 08:28
CQFD ou NON?
B@ron {EU.BELGIUM}
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
24 mars 2004 à 08:56
:big) Neodante :big)

Tout ça pour rien dire ... c'est clair je m'en excuse (le singe tricolore se prosterne ! lol) ... m'enfin faut bien s'occuper !!! lol
@+

[Responsable www.neogamedev.com]
0
cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
24 mars 2004 à 09:15
C'est pour que notre ami MetalDestroyer nous dise quoi si cela fonctionne ou pas.
NEODANTE, à propos de l'univers JAVA3D, je vais encore incorporer une sphère transparente autour de ma 'caméra' pour détecter les collisions. Tu penses que c'est une bonne idée.
Si tu as du temps, on pourrait bosser ensemble afin de réaliser une super base d'environnement 3D.

Tu as déjà trouver ce jeux en 3D d'un étudiant: arabian_1.4.jar?

B@ron {EU.BELGIUM}
0
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
24 mars 2004 à 09:22
Désolé, je n'ai pas pu le tester hier, je vais le faire en ce moment même.
0
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
24 mars 2004 à 10:10
Ca y est, ca marche, merci beaucoup.

J'ai pris l'exemple de tds et GodConan

Poteau = ((Node)textPoteauList.item(0)).getNodeValue().trim().compareTo("0")==0 )?true:false;

Et j'obtien bien les bon résultats.
0
cs_tds Messages postés 351 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 9 décembre 2004
24 mars 2004 à 10:17
Suis bien content d'avoir pu t'aider => vais passer 1 bonne journée.

B@ron {EU.BELGIUM}
0
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
24 mars 2004 à 10:22
Comment faire pour qu'un client en Visual basic puisse recevoir un message d'un serveur Java ??

Etant donnée que le serveur Java envoie un String, le client VB recoit bien quelque chose mais le message est scripté.

Y aurait il pas un driver à activer dans VB ??
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
24 mars 2004 à 12:42
:big) Neodante :big)

Oula attends là y a confusion entre technologie de langage et réseau ... 'Tout le monde' (en général) parle la même langue sur un réseau : le TCP/IP si tu te connectes à une socket d'un serveur, quelle soit en Java, VB, C, ou autre et que cela soit sur Unix, Linux, Windows, Mac, ... ça revient au même !
DOnc si ton message est crypté comme tu le dis c'est que le serveur Java y est pour quelque chose ... ou que ton code VB soit également en défaut ... sinon ta chaine serait lisible ... (couche application de TCP !). Avec le nombre de prog VB/Java/C/Pascal/Asm sur Win/Unix/Linux que j'ai conçu y a jamais eu de prob ... vive les sockets ! Donc l'erreur ne peut venir que de toi ...
@+

[Responsable www.neogamedev.com]
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
24 mars 2004 à 12:44
:big) Neodante :big)

SInon poste ton code VB et celui de Java ...
@+

[Responsable www.neogamedev.com]
0
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
24 mars 2004 à 13:10
Je pense qu'il faut que je désérialise l'objet chez le client VB.
car le serveur Java envoie un objet Sérialisé, mais je ne sais pas comme désérialisé un objet sous VB.

Je vous donne le code du Serveur Java ( et plus tard, le VB,; car je ne l'ai pas sur ce PC ).

public class Connection extends Dialogue {
private int num, periodeCycle, nbCyclesRestant;
private Robot robot;
private float coordX=0, coordY=0, vitesse;
private double angle;
private StatistiqueSimulation stats;
private Grille labyrinthe;
public void run() {

int nbCyclesRestant;
ClientToServeur ordres;
ServeurToClient reponse;

//Construction du laby par défaut.
//Donc pas de prise en compte du xml

XML ReadXML = new XML();


try {
ObjectOutputStream out = new ObjectOutputStream(getSocket().getOutputStream());
ObjectInputStream in = new ObjectInputStream(getSocket().getInputStream());

//*************** Initialisation *************************************

String pipo = (String)in.readObject();
System.out.println("Msg de VB " + pipo);
//Obtenir liste des fichiers
String[] TempDir = new File("./Maps/").list();
for (int i = 0; i < TempDir.length; i++)
{
if ( TempDir[i].endsWith("dtd") )
{
TempDir[i] = "";
}
}
String[] Dir = TempDir;
//triage
java.util.Arrays.sort(Dir);
System.out.println("Liste des Labyrinthes : \n");
int nb, compteur = 1;
String nbfile = Integer.toString(Dir.length);
out.writeObject(nbfile);
for (nb = 0; nb < Dir.length; nb++)
{
if ( Dir[nb] != "" )
{
System.out.println( compteur + ". " + Dir[nb]);
out.writeObject(Dir[nb]);
compteur = compteur + 1;
} else
{
out.writeObject(Dir[nb]);
}
}
System.out.println("\n\n");
//String temp = (String)parsestring(nb);
//out.writeObject(nb);
//- VB -------------------------------
//String msg = (String)in.readObject();
// System.out.println(msg);
//------------------------------------

String selection = (String)in.readObject();
labyrinthe=choixLaby();
ReadXML.lecture("./Maps/" + selection);


//Placement de la souris dans le laby
System.out.println("Patientez quelques instants le temps de placer votre robot");
for (int i = 0; i < ReadXML.Format.Largeur; i++)
{
for (int j = 0; j< ReadXML.Format.Hauteur; j++)
{
System.out.println("X " + i + "; Y " + j);
//System.out.println("Statut : " + ReadXML.Labyrinthe[i][j].statut);
System.out.println("Statut : " + ((Case)ReadXML.laby.get(i,j)).statut /*(Case)ReadXML.laby.get(i,j)).statut)*/);if ( ((Case)ReadXML.laby.get(i,j)).statut.charAt(0) 's' ) /*ReadXML.Labyrinthe[i][j].statut "s"*/
{
//---- Placer la souris
//---- Affichage des coordonées
String Co_X = Integer.toString(i);
String Co_Y = Integer.toString(j);
out.writeObject(Co_X); // coord X
out.writeObject(Co_Y); // coord Y
System.out.println("Votre souris est à la position ");
System.out.println("X : " + i + " Y : " + j);
//---- Quitter la boucle
//return;
}
}
}

//*********** Reception des caracteristiques de simulation *******
try {
robot=(Robot)in.readObject();
} catch (ClassNotFoundException CNFexc) {
System.err.println(CNFexc);
}
nbCyclesRestant=20*60*1000/robot.getPeriodeCycle();

//************ Initialisation des statistique de simulation*********
stats= new StatistiqueSimulation();

/*******************************************************************
********************* Communication avec client-robot **************
*******************************************************************/

for(;nbCyclesRestant>0; nbCyclesRestant--) {

//************ Calcul des valeurs actuelles des capteurs ***********
reponse=calculCapteurs();
/***************** Envoi des ces valeurs au Client ****************/
out.writeObject(reponse);
/********** Reception des ordres moteurs de la reaction du robot***/
ordres=(ClientToServeur)in.readObject();
/****************** Prise en compte de ce deplacement ****************/
majServeur(ordres);

}
/******** Envoi du signal de fin de simulation*****************/
out.writeObject(new ServeurToClient(false));
/******************Envoi des statitstiques de simulation********/
out.writeObject(stats);

} catch (IOException IOexc) {
System.err.println("Erreur dans le dialogue des sockets : " + IOexc);
this.finalize();
} catch(ClassNotFoundException CNFexc){
System.err.println("Classe inconnue : " + CNFexc);
}finally {
try {
getSocket().close();
} catch (IOException e2) {
;
}
}
}

}
0
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
24 mars 2004 à 13:18
Maintenant, le code VB partie Client.

//--------Envoie d'un message du client

' Demande d'envoie du méssage saisi
Private Sub cmdEnvoi_Click()
Dim chaine As String
Dim envoi As Object

chaine = "salut"

' Test si la socket est bien connectée
If Wsck_Client.State = sckConnected Then
' Encoie du message saisi plus le caractère de fin de message
'chaine = 0
Wsck_Client.SendData chaine
End If
End Sub

//---------- Réception des messages venant du serveur

' Arrivée de données en provenance du serveur
Private Sub Wsck_Client_DataArrival(ByVal bytesTotal As Long)
Dim Message As String, Coupure As Long
Static Data As String
' Lecture des données reçues
Wsck_Client.GetData Message
Data = Data + Message
txtReception.text = Message

' Ajout des nouvelles données dans le "Buffer"

' Détecte la presence d'un caractère de fin de message
Coupure = InStr(1, Data, Chr(29), vbBinaryCompare)


' Boucle tant que tous les messages complets ne sont pas traités
Do While Coupure > 0
' Lecture du message a traiter (sans caratère de fin de message)
Message = Mid(Data, 1, Coupure - 1)

' Conserve le reste des donées recues
Data = Mid(Data, Coupure + 1, Len(Data) - Coupure)

' Affichage du message reçu
MsgBox "Message du serveur : " + Message, , Me.Caption

' Détecte la presence du prochain caractère de fin de message
Coupure = InStr(1, Data, Chr(29), vbBinaryCompare)
Loop

End Sub
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
24 mars 2004 à 15:16
:big) Neodante :big)

Bon je regarde ça ce soir ! Là pas trop le temps de m'attardé dessus !! Boulot oblige ...
@+

[Responsable www.neogamedev.com]
0
MetalDestroyer Messages postés 37 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 21 août 2004
24 mars 2004 à 16:51
Dernière question,

Pourrais tu me faire un petit code permettant d'afficher une image dans une frame ??

Car, j'ai tester plusieur manière de le faire, mais malheureusement, je ne vois pas l'image.

Merci.
0
Rejoignez-nous