[Isis-fish-user] Re : Export des experiences dans calibration
Benjamin propose : je pense avoir trouve une solution qui ne te ferais rien modifier, mais je ne pourrais deployer une nouvelle version que la semaine prochaine. Sinon une solution de remplacement pour l'instant est d'ecrire dans un fichier directement depuis le plan d'analyse. Tu declares un fichier File exportFile= new File("MonExport.csv"); Dans l'init tu commences a ecrire des choses dedans (ou rien) org.codelutin.util.FileUtil.writeString(exportFile, ""); Dans changeDB tu ecris les valeurs dans le fichier // on lit les anciennes String oldContent = org.codelutin.util.FileUtil.readAsString(exportFile); // on ajoute les nouvelles String newContent = old + exp.q1 +";"+ exp.q2 +";"+ exp.criteria + "\n" // et on ecrit le tout org.codelutin.util.FileUtil.writeString(exportFile, newContent); -- Sigrid LEHUTA ~ ><> ~ Ecologie et Modèles pour l'Halieutique IFREMer, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03
Sigrid LEHUTA said:
Benjamin propose :
je pense avoir trouve une solution qui ne te ferais rien modifier, mais je ne pourrais deployer une nouvelle version que la semaine prochaine.
Sinon une solution de remplacement pour l'instant est d'ecrire dans un fichier directement depuis le plan d'analyse.
Tu declares un fichier File exportFile= new File("MonExport.csv");
Autant declarer une chaine en meme temps: protected String exportContent = "";
Dans l'init tu commences a ecrire des choses dedans (ou rien) org.codelutin.util.FileUtil.writeString(exportFile, exportContent);
et du coup l'init ne sert a rien (a supprimer)
Dans changeDB tu ecris les valeurs dans le fichier
// on lit les anciennes String oldContent = org.codelutin.util.FileUtil.readAsString(exportFile); // on ajoute les nouvelles String newContent = old + exp.q1 +";"+ exp.q2 +";"+ exp.criteria + "\n" // et on ecrit le tout org.codelutin.util.FileUtil.writeString(exportFile, newContent);
et changeDB se transforme en: exportContent += exp.q1 +";"+ exp.q2 +";"+ exp.criteria + "\n"; org.codelutin.util.FileUtil.writeString(exportFile, exportContent); donc au final, c plus simple et plus rapide :) -- Benjamin -------------------- email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
Merci Benjamin, ton code marche impec bien à condition : 1) de ne pas mettre : exportContent += exp.q1 +";"+ exp.q2 +";"+ exp.criteria + "\n"; org.codelutin.util.FileUtil.writeString(exportFile, exportContent); dans changeDB car qd cette methode est appelee le critere n est pas encore calculé mais plutot mettre a la fin du afterSimulation : exportHisto += experiences.getExperience(number).q1 +";"+ experiences.getExperience(number).q2 +";"+ experiences.getExperience(number).criteria + "\n"; org.codelutin.util.FileUtil.writeString(exportFile, exportContent); et 2) ATTENTION : MonExport.csv est toujours conservé (jamais effacé) et on ecrit a la suite. C est parfait quand on relance le simplex apres "out of memory" (en faisant attention aux simu faites 2 fois) mais il faut l effacer avant de recommencer une calibration toute neuve a++ Benjamin Poussin a écrit :
Sigrid LEHUTA said:
Benjamin propose :
je pense avoir trouve une solution qui ne te ferais rien modifier, mais je ne pourrais deployer une nouvelle version que la semaine prochaine.
Sinon une solution de remplacement pour l'instant est d'ecrire dans un fichier directement depuis le plan d'analyse.
Tu declares un fichier File exportFile= new File("MonExport.csv");
Autant declarer une chaine en meme temps: protected String exportContent = "";
Dans l'init tu commences a ecrire des choses dedans (ou rien) org.codelutin.util.FileUtil.writeString(exportFile, exportContent);
et du coup l'init ne sert a rien (a supprimer)
Dans changeDB tu ecris les valeurs dans le fichier
// on lit les anciennes String oldContent = org.codelutin.util.FileUtil.readAsString(exportFile); // on ajoute les nouvelles String newContent = old + exp.q1 +";"+ exp.q2 +";"+ exp.criteria + "\n" // et on ecrit le tout org.codelutin.util.FileUtil.writeString(exportFile, newContent);
et changeDB se transforme en: exportContent += exp.q1 +";"+ exp.q2 +";"+ exp.criteria + "\n"; org.codelutin.util.FileUtil.writeString(exportFile, exportContent);
donc au final, c plus simple et plus rapide :)
-- Sigrid LEHUTA ~ ><> ~ Ecologie et Modèles pour l'Halieutique IFREMer, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03
Sigrid LEHUTA said:
Merci Benjamin, ton code marche impec bien à condition : ... 2) ATTENTION : MonExport.csv est toujours conservé (jamais effacé) et on ecrit a la suite. C est parfait quand on relance le simplex apres "out of memory" (en faisant attention aux simu faites 2 fois) mais il faut l effacer avant de recommencer une calibration toute neuve
dans le init tu peux ajouter: exportFile.delete(); -- Benjamin -------------------- email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii
participants (2)
-
Benjamin Poussin -
Sigrid LEHUTA