Interface homme/machine java

oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005 - 3 juin 2005 à 01:19
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 6 juin 2005 à 20:01
Bonsoir à toutes et à tous
J'ai développé un programme en java qui permet de parser les données d'un fichier d'un certain format, issu d'un soft de calcul, afin de générer un autre fichier d'un autre format exploitable par un autre soft de calcul.
Le programme est complètement implémenté, cependant il réside une erreur que je n'arrive pas malheureusement à lever. Il s'agit pourtant simplement d'un erreur de lecture . voilà ma petite histoire !!
Si quelqu'un pouvait se manifester pour qu'on résolve mon problème, ce serait .... vachement cool
Merci A Vous

18 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
3 juin 2005 à 06:38
et bien c est quoi cette erreur ?!! ;o)

GodConan
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
3 juin 2005 à 09:19
Salut
merci de t'intéresser à ce problème, qui je pense est assez trivial puisqu'il ne s'agit que de flux de fichiers.
Par contre, ce qui peut ëtre plus "brouillageux" c'est d'expliquer le contexte du soft qu'il faut que je t'envoie pour que tu le considères toi-même.
T'as un mail où je peux t'envoyer tout ça ??
Encore un grand Merci
++
0
safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
3 juin 2005 à 10:24
tu pe envoyer sur le forum, comme ca tt le monde pe voir s'il pe faire klk chose!
(respect à GodConan)
0
safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
3 juin 2005 à 10:24
tu pe envoyer sur le forum, comme ca tt le monde pe voir s'il pe faire klk chose!
(respect à GodConan)
0

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

Posez votre question
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
3 juin 2005 à 10:42
lo
ouais j'aimerais bien ....


on peut poster un message avec un dossier joint ?


Si c'est le cas, je m'y prends comment stp ?


Merci Merci


++
0
safisoft Messages postés 489 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 13 mai 2009 6
3 juin 2005 à 11:05
l'erreur ne viens forcement pas de l'ensemble du projet, tu poste seulement le bout de code concerné!
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
3 juin 2005 à 14:19
Re
Voici le bout de code qui parse le fichier que tu trouveras dessous:

/**
* parse le dataset 2470 des propriétés physiques
* @return vrai si tout c'est passé sans erreur faux sinon
*/
boolean parse_dataset_2470() {
Vector d_tmp = new Vector();
int nb_lignes = 0; int tmp2 0, tmp3 0;
Propriete_physique tmp = new Propriete_physique();
boolean flag = false;
try {
FileReader f_r = new FileReader(unv);
StreamTokenizer st = new StreamTokenizer(f_r);
int moment = 0;
st.wordChars('0', '9');
st.wordChars('_', '_');
st.commentChar('=');
while (st.nextToken() != StreamTokenizer.TT_EOF) {
switch (moment) {
case -2:
JOptionPane.showMessageDialog(parent,
"Erreur lors de la lecture du fichier " +
unv + " à la ligne " + (st.lineno() - 1),
"DATASET 2470 - ERREUR",
JOptionPane.ERROR_MESSAGE);
return false;
case -1:
break;
case 0: //recherche du dataset - 1 if ( (st.ttype StreamTokenizer.TT_NUMBER) && (st.nval -1))
moment = 1;
else
moment = 0;
break;
case 1: //recherche du dataset - 2 if ( (st.ttype StreamTokenizer.TT_NUMBER) && (st.nval -1))
moment = 2;
else
moment = 0;
break;
case 2: //recherche du dataset - 3 if ( (st.ttype StreamTokenizer.TT_NUMBER) && (st.nval 2470)) {
moment = 3;
flag = true;
}
else
moment = 0;
break;
case 3: //lecture du numéro de la table des propriétés physiques
tmp = new Propriete_physique();
tmp2 = 0;
tmp3 = 0;
if (st.ttype == StreamTokenizer.TT_NUMBER) {
if ((int) st.nval == -1)
moment = -1;
else{
tmp.numero = (int) st.nval;
moment = 4;
}
}
else
moment = -2;
break;
case 4: //lecture du fe_id de la table des propriétés physiques
if (st.ttype == StreamTokenizer.TT_NUMBER) {
tmp.fe_id = (int) st.nval;
nb_lignes = this.calcul_saut_ligne_v_11(tmp.fe_id) +1;
moment = 5;
}
else
moment = -2;
break;
case 5: //lecture du nombre de proprietes de chaque table des propriétés physiques
if (st.ttype == StreamTokenizer.TT_NUMBER) {
tmp.nb_prop = (int)st.nval;
moment = 6;
st.eolIsSignificant(true);
}
else
moment = -2;
break;
case 6: //saut de lignes
if (st.ttype == StreamTokenizer.TT_EOL) {
tmp2 = tmp2+1;
if (tmp2 == 3)
moment = 7;
}


break;
case 7: //lecture de la propriete physique -1
if (st.ttype == StreamTokenizer.TT_NUMBER) {
tmp.propeur = ""+st.nval;
moment = 8;
st.eolIsSignificant(true);
}
else {
if ( (tmp.fe_id != 110) && (tmp.fe_id != 50) && (tmp.fe_id != 80))
moment = -2;
else
moment = 9;
}
break;


case 8: //lecture de la propriete physique - 2
if (st.ttype == StreamTokenizer.TT_WORD) {
tmp.propeur = tmp.propeur + st.sval;
}
tmp.propeur = stringModificateur(tmp.propeur);
moment = 9;


case 9: //sauts de lignes jusqu'à la table des propriétés suivante
if (st.ttype == StreamTokenizer.TT_EOL) {
tmp3++;
if (tmp3 == nb_lignes) {
tmp3 = 0;
moment = 3;
if ( (tmp.fe_id != 110) && (tmp.fe_id != 50) && (tmp.fe_id != 80)){
d_tmp.add(tmp);
//System.out.println(tmp.toString());
}
}
}


}
}


f_r.close();
donnees.proprietes_phy = d_tmp;
if (flag == false) {
JOptionPane.showMessageDialog(null,
"DATASET 2470 INEXISTANT - VOUS DEVEZ DEFINIR DES PROPRIETES PHYSIQUES",
"Erreur",
JOptionPane.ERROR_MESSAGE);
}
return flag;
}


catch (FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, "Fichier non trouvé", "Erreur",
JOptionPane.ERROR_MESSAGE);
return flag;
}
catch (IOException ex) {
JOptionPane.showMessageDialog(null, "Impossible de lire le fichier",
"Erreur", JOptionPane.ERROR_MESSAGE);
return flag;
}
}

En lancant le programme, j'ai une erreur de lecture du fichier parsé à la ligne 1129.
Voici le bout du fichier concerné
-1
-1
2470
1 110 47
SOLIDE1
88 3 10

262 3 10
Recommande
89 3 10

117 1 12
-999 -999 -999 -999 -999 -999 -999 -999
-999 -999 -999 -999
263 1 1
0
264 1 1
0
265 1 1
0
266 1 1
0
297 3 20
PSOLID
298 3 20
PSOLID
299 3 20
PSOLID
300 3 20
PIHEX
302 3 20
SECT SOLIDE
303 3 20
SECT SOLIDE
305 3 10

306 2 1
1.0000000E-35
307 2 1
1.0000000E-35
308 2 1
1.0000000E-35
309 1 1
0
326 2 1
0.0000000E+00
329 2 1
0.0000000E+00
312 1 1
1
286 1 1
0
288 3 80

289 3 80

290 3 6

281 1 1
0
282 3 96


283 1 1
-999
284 3 14
Entrée
287 1 1
0
439 3 10

800 1 1
0
801 3 80

802 3 80

803 1 6
0 0 0 0 0 0
804 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
805 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
806 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
807 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
118 2 1
0.0000000E+00
154 1 1
1
260 2 1
0.0000000E+00
343 1 1
0//ligne 1129
441 2 1
0.0000000E+00
442 2 1
0.0000000E+00
443 2 1
0.0000000E+00
2 90 80
COQUE MINCE2
1 2 4
1.0000000E-03 1.0000000E-35 1.0000000E-35 1.0000000E-35
46 2 1
1.0000000E+00
47 2 1
8.3333302E-01
48 2 1
1.0000000E-35
52 2 2
1.0000000E-35 1.0000000E-35
82 2 1
0.0000000E+00
117 1 12
-999 -999 -999 -999 -999 -999 -999 -999
-999 -999 -999 -999
263 1 1
0
264 1 1
0
265 1 1
0
266 1 1
0
262 3 10
Mindlin
271 1 1
9
272 1 1
1
273 1 1
1
274 1 1
1
275 1 1
0
276 1 1
0
277 1 1
0
278 1 1
0
279 2 1
1.0000000E-35
88 3 10

287 1 1
0
297 3 20
PSHELL
298 3 20
PSHELL
299 3 20
PSHELL
300 3 20
PSHELL
301 3 20
SECT COQUE
302 3 20
SECT COQUE
303 3 20
SECT COQUE
321 2 1
1.0000000E-35
322 2 1
1.0000000E-35
316 1 1
1
317 1 1
-999
323 3 6

309 1 1
0
326 2 1
0.0000000E+00
327 2 1
0.0000000E+00
328 2 1
0.0000000E+00
329 2 1
0.0000000E+00
330 2 1
0.0000000E+00
331 2 1
0.0000000E+00
312 1 1
1
332 1 1
0
333 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
336 1 1
0
337 2 1
0.0000000E+00
338 3 8
SIMPSON
370 1 1
0
339 1 3
3 0 0
340 1 1
0
341 2 1
0.0000000E+00
281 1 1
0
282 3 96


283 1 1
-999
284 3 14
Entrée
285 1 1
0
296 2 1
7.8200000E+03
384 2 1
1.0000000E-35
286 1 1
0
288 3 80

289 3 80

343 1 1
0
344 3 10

345 1 1
0
305 3 10

800 1 1
0
801 3 80

802 3 80

803 1 6
0 0 0 0 0 0
804 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
805 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
806 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
807 2 3
0.0000000E+00 0.0000000E+00 0.0000000E+00
118 2 1
0.0000000E+00
154 1 1
1
260 2 1
0.0000000E+00
441 2 1
0.0000000E+00
442 2 1
0.0000000E+00
443 2 1
0.0000000E+00
-1
-1

Ne préfères tu pas que je t'envoie tout le projet pour que tu es une vue d'ensemble ?
Dans tous les cas, un grand merci
++
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
3 juin 2005 à 17:26
ce que je demander surtout c est quelle erreur as tu ? cela ciblerai deja un peu le prob ...

GodConan
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
3 juin 2005 à 17:49
lo
c'est une erreur de lecture du fichier parsé
erreur à la ligne 1129
c'est ce que j'ai écrit dans le post précédent ;)
entre les deux fichiers...
Merci
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
3 juin 2005 à 18:30
grrr ce que c est pas beau a lire ;-(
respecter un peu les convention d ecriture JAVA .... pas de _ dans les noms mais des Maj pour separer les mots
Aussi prend l habitude de ne jamais nommer tes variable tmp.. surtout pour une visibilité aussi grande... D autant que tu appelle tes var tmp avec des types different ;-(

pour corriger il manque calcul_saut_ligne_v_11( tmp.fe_id ) car du coup je sais pas ou tu arrive ds le cas 9

autrement pour corriger a tu essayer un debugger c est le genre de prob qui doit etre facil a resoudre en suivant la lecture du fichier avec des point d arrer...

a vu de nez je pencherai pour une error de cas tu tatend surment a lire quelque chose que tu n a pas...
essaye de preciser l erreur : quel est le type de l erreur ou dans quel cas as tu l erreur ...
erreur de lecture c est trop vague....

GodConan
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
5 juin 2005 à 18:54
Salut GodConan
merci beaucoup pour ton aide
j'ai téléchargé eclipse pour utiliser son débogueur, rassure moi, il en a un ?!
et puis j'ai pas réussi à le faire fonctionne, j'ai plein d'erreurs à cause des packages
il me dit :
"Le package déclaré ne correspond pas au package attendu"
:O j'ai pourtant essayer toutes les combinaisons au niveau des imports packages

j'ai toujours pas résolu mon problème
l'erreur se produit alors qu'elle ne devrait pas ;D
en fait, le programme stoppe alors que le parse du dataset 2470 (boolean parse_dataset_2470) n'est pas fini

Merci encore pour toute ton aide
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
5 juin 2005 à 19:33
vi le debugger d eclipse est tres bien ...
et ce prete tout a fait a ton probleme
crer ton java projet avec un "source folder"
et met tout tes source dedans
par contre si tu as crer des packages et bien soit tu importe toute tes source (DnD) avec toute les repertoires et il les prendra comme package soit tu crer des package et tu bouge tes sources dedans ...
ensuite tu execute ;o) avec le launcher ;o) pas dur ...

GodConan
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
5 juin 2005 à 19:35
autrement qd tu est ds le case Error retrouve le case qui as ammener cette error...
la methode la plus classic etant les system.out ;-(( ;o)

GodConan
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
5 juin 2005 à 20:03
j'ai mis des systeme.out.println à chaque moment=-2 qui renvoie à l'affichage d'erreur
je compile, j'exécute, il me met toujours la meme erreur et il ne m'affiche rien ?? :O
quant a eclipse, je dois surement mal m'y prendre mais impossible de travailler avec mon soft dessus :OO
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
6 juin 2005 à 06:19
c est qd meme pas si dur a comprendre Eclipse ?!! ;o)
quel JDK utilises tu ? a partir de Eclipse 3.0 il me semble qu il faut 1.4

GodConan
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
6 juin 2005 à 18:37
lo
j'utilise bien le JDK 1.4
j'ai réglé l'erreur dont j'ai fais part sur le forum.
En fait, dans la méthode parse_dataset_2470, je fais appel à une méthode qui calcule automatiquement le nombre de ligne à sauter selon les cas. Le nombre de lignes en question était, tu l'auras deviné inexact.
Donc pour l'instant le soft a l'air de tourner, en tout cas pour des situations relativement simples.
Je vais parser des fichiers plus conséquents et on verra comment ca se passe :D

Merci beaucoup pour ton aide.
Je n'hésiterais pas à revenir en cas de panne ..
Encore merci
++
0
oncle jules Messages postés 43 Date d'inscription vendredi 3 juin 2005 Statut Membre Dernière intervention 19 septembre 2005
6 juin 2005 à 18:45
re
j'oubliais :O
j'ai copier le soft sur une station unix, seulement j'ai un petit problème au niveau du script de compilation
qu'on m'a filé (unix et moi ca fais ........ 4 ) ;)
dis moi ce que tu en penses stp :
PROGDIR=$(cd 'dirname $0'/..;pwd)

javac -classpath $PROGDIR/classes -d $PROGDIR/classes etc

il met un message d'erreur 'PROGDIR=$' unexpected

Merci pour tes éclaircicessements
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
6 juin 2005 à 20:01
c est marrant l erreur que tu as trouvé ;o) si tu regarde le premier post que je t ai fait ;o) apres ton envoi de source ;o) je fait justement allusion a cette methode comme potentiel ERREUR ;o) ....

par contre pour Unix désolé je ne peu vraiment pas t aider ;-( mais refait un forum y a du monde qui s y connai sur le site ...

GL

++

GodConan
0
Rejoignez-nous