MetalDestroyer
Messages postés37Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention21 août 2004
-
23 mars 2004 à 10:51
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 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;
MetalDestroyer
Messages postés37Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention21 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.
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 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 !!!
@+
cs_tds
Messages postés351Date d'inscriptionmercredi 21 janvier 2004StatutMembreDerniè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?
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 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 ...
@+
MetalDestroyer
Messages postés37Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention21 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());
//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);
MetalDestroyer
Messages postés37Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention21 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