Javatarik
Messages postés26Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention30 janvier 2007
-
4 oct. 2006 à 14:27
Javatarik
Messages postés26Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention30 janvier 2007
-
4 oct. 2006 à 22:15
Bonjour à tous les amis programmeurs de javafr.com
Voila, je suis entrain de faire un projet enveloppent des codes java et fortran 90, ce dernier fait appel à un exécutable fortran qui donne des fichiers de sortie en (.dat), le problème que j’ai c’est que je n’arrive pas à exploiter ces données qui sont sous forme de vecteurs (Double precision) dans mon code java, ce que je veux, c’est de récupérer ces vecteur et les utiliser dans mon appli java, y’a-t-il quelqu’un qui peux m’aider
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Ps : j’ai trouver un bout de code qui lit des donner mais comment identifier ce flux d’entrer et l’affecter à des tableaux !!!!!
import java.io.*;
public class Reader {
public static void main(String[] args)throws IOException,
FileNotFoundException {
try{
FileReader fs = new FileReader("D:/Java_eclips/reader/classes/data.dat");
super_toinou
Messages postés764Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention 8 mars 20116 4 oct. 2006 à 16:34
idem que sheorogath
de toute facon il faut que tu connaisse la structure de ton fichier si tu veux regénérer un vecteur par dessus
dans ce cas parse ton fichier et ajoute les éléments un par un dans ton vecteur java !
si tu connais pas la structure à l avance ben bon courage ....
++ Toinou
Vous n’avez pas trouvé la réponse que vous recherchez ?
Javatarik
Messages postés26Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention30 janvier 2007 4 oct. 2006 à 17:36
Mercis chères amis (e)
En faites j’ai un vecteur de 1000 éléments obtenus avec mon code fortran que je veux le traité dans mon code java, le bout de code que j’ai donné auparavant le lit mais quant j’affecte un vecteur à a sa donne des truc en binaire !
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Javatarik
Messages postés26Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention30 janvier 2007 4 oct. 2006 à 18:41
Salut sheorogath,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Peut être que vous m’aviez mal compris, donc je vais vous expliquer les choses dans le langage informatique, donc j’ai par exemple deux petits code l’un en fortran et l’autre en java comme suite :
ce que je veux c’est lire x(i) dans ma class Reader, et ensuite affecté par exemple ce
x(i) à veteur[i] dans la même class, afin de l’utiliser dans une méthode, donc comment faire sans que je tombe sur le binaire.
Javatarik
Messages postés26Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention30 janvier 2007 4 oct. 2006 à 18:49
Je voudrais seulement ajouter que je suis débutant en java, mais vétéran en fortran, mon bute principale est de simuler un comportement physique dans une appli swing java, ce qui ma poussé à revenir à fortran c’est pour utilisation de ces modules et les subroutine de numerical recipse , merci
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 oct. 2006 à 18:50
Salut,
Que contient le fichier .dat un vecteur sauce fortrant ( soit la sérialisation de celui-ci )?
ou il contient uniquement les données du vecteur ? si oui comment sont elle représentée dans le fichier ?
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 oct. 2006 à 19:36
Salut,
bon oki alors au plus simple, essais d'ecrire ton fichier sous cette forme
1=1.000000
2=2.000000
3=3.000000
4=4.000000
5=5.000000
6=6.000000
7=7.000000
8=8.000000
9=9.000000
10=10.00000
ensuite tu peux faire
public static void main(String[] args) {
try{
//creation de l'objet qui va permettre de lire le fichier
Properties p = new Properties();
//on charge le fichier
p.load(new FileInputStream(new File("Test.dat")));
//on recupere les cles
Enumeration<Object> enumeration = p.keys();
//pour tous les elements on affiche
while(enumeration.hasMoreElements()){
Object key = enumeration.nextElement();
Object value = p.get(key); System.out.println("Key " + key + ", value " + value);
}
}catch(Exception e){
e.printStackTrace();
}
}
voila maintenant soit tu preserve les hashtable soit tu le met dans un vecteur....
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 oct. 2006 à 20:18
Salut,
ba pour x,y c'est la meme
[id=x,y]
1=1.000000,10.000000
2=2.000000,9.000000
3=3.000000,8.000000
4=4.000000,7.000000
5=5.000000,6.000000
6=6.000000,5.000000
7=7.000000,4.000000
8=8.000000,3.000000
9=9.000000,2.000000
10=10.00000,1.000000
et le code
public static void main(String[] args) {
try{
//creation de l'objet qui va permettre de lire le fichier
Properties p = new Properties();
//on charge le fichier
p.load(new FileInputStream(new File("Test.dat")));
//on recupere les cles
Enumeration<Object> enumeration = p.keys();
//pour tous les elements on affiche
while(enumeration.hasMoreElements()){
Object key = enumeration.nextElement();
String value = p.get(key).toString();
//on parse la valeur et recup x et y
StringTokenizer token = new StringTokenizer(value, ", ");
if(token.countTokens() > 1 ){
String x = token.nextToken();
String y = token.nextToken();
System.out.println("Key = " + key + ", [x:" + x + ", y:" + y + "]");
}
}
}catch(Exception e){
e.printStackTrace();
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
Javatarik
Messages postés26Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention30 janvier 2007 4 oct. 2006 à 20:28
Salut me revoilà et désolé pour le dérangement,
Le mieux que je peux faire pour les data fortran c est cette notation :
1= 1.000000 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
2= 2.000000
3= 3.000000
4= 4.000000
5= 5.000000
6= 6.000000
7= 7.000000
8= 8.000000
9= 9.000000
10= 10.00000
et cela à cause du faite que l un est integer et l’autre real, et en compilant votre code java j ai eu des erreurs (manque de quelque méthodes ) ça donne le message suivant :
public class MainProgram {
public MainProgram() {}
/**
* @param args
*/
public static void main(String[] args) {
try{
//creation de l'objet qui va permettre de lire le fichier
Properties p = new Properties();
//on charge le fichier
p.load(new FileInputStream(new File("Test.dat")));
//on recupere les cles
Enumeration<Object> enumeration = p.keys();
//pour tous les elements on affiche
while(enumeration.hasMoreElements()){
Object key = enumeration.nextElement();
String value = p.get(key).toString();
//on parse la valeur et recup x et y
StringTokenizer token = new StringTokenizer(value, ", ");
if(token.countTokens() > 1 ){
String x = token.nextToken();
String y = token.nextToken();
System.out.println("Key = " + key + ", [x:" + x + ", y:" + y + "]");
}
}
}catch(Exception e){
e.printStackTrace();
}
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 oct. 2006 à 20:58
Salut,
bon déja j'utilise le jdk 1.5 et visiblement toi non donc tu ne peux utiliser les templates
maintenant
selon l'exemple de fichier que tu donnes faut que tu utilise une autre solution pour lire ton fichier vu que la aucune des deux solution de fonctionnera
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."
public static void main(String[] args) {
try{
//creation de l'objet qui va permettre de lire le fichier
Properties p = new Properties();
//on charge le fichier
p.load(new FileInputStream(new File("Test.dat")));
//on recupere les cles
Enumeration enumeration = p.keys();
//pour tous les elements on affiche
while(enumeration.hasMoreElements()){
String key = enumeration.nextElement().toString();
String value = p.getProperty(key);
//on parse la valeur et recup x et y
StringTokenizer token = new StringTokenizer(value, ", ");
if(token.countTokens() > 1 ){
String x = token.nextToken();
String y = token.nextToken();
System.out.println("Key = " + key + ", [x:" + x + ", y:" + y + "]");
}
}
}catch(Exception e){
e.printStackTrace();
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."