Ecrire dans un fichier texte par colonne [Résolu]

Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
- - Dernière réponse : sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Dernière intervention
29 janvier 2010
- 17 mai 2007 à 00:43
Bonjour,
Je voudrais écrire dans un fichier texte de façon particulière. En fait je voudrais écrire par série :
1ère série
0
1
2

puis rajouter une colonne a ce fichier pour qu'il devienne
1ère série 2ème série
0 3
1 4
2 5
A savoir que chaque colonne est formatée à 22 caractère mais çà je sais faire y a t'il un moyen ??? je n'ai pas trouvé de solution pour l'instant. Voici mon code actuelle qui écris tout a la suite pour l'instant :
public void saveInAsciiTheChart(File file)
{
BufferedWriter fileAscii;
String Xf;
String Yf;
XYSeries currentSeries;

try {
fileAscii = new BufferedWriter(new FileWriter(file));

for(int i=0 ; i < displayDataset.getSeriesCount() ; ++i)
{
if(displayDataset.getSeries(i).getKey().toString() != "Other Molecules"
&& displayDataset.getSeries(i).getKey().toString() != "Species"
&& displayDataset.getSeries(i).getKey().toString() != "Error"
&& displayDataset.getSeries(i).getKey().toString() != "Line" )
{
if(displayDataset.getSeries(i).getKey().toString() != null)
{
fileAscii.write(displayDataset.getSeries(i).getKey().toString());
fileAscii.newLine();

}
else
{
fileAscii.newLine();
fileAscii.newLine();

}
for(int j=0 ; j < displayDataset.getSeries(i).getItemCount() ; ++j)
{


Xf = TextFieldFormatFilter.remplissageDeZone(displayDataset.getSeries(i).getDataItem(j).getX().toString(),false,' ',22);
Yf =TextFieldFormatFilter.remplissageDeZone(displayDataset.getSeries(i).getDataItem(j).getY().toString().toString(),false,' ',22);

fileAscii.write(Xf + "\t" + Yf);
fileAscii.newLine();

}
}
}
fileAscii.close();
} catch (IOException e) {
System.err.println("Error during writing in the file");
}

}



merci de votre aide en espèrant qu'il y es une solution a ce problème

lafolle
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
2
3
Merci
je suis passée par un tablmeau à 2 dimensions : voici mon code si çà peut servir:

public void saveInAsciiTheChart(File file)
{
BufferedWriter fileAscii;
String Xf;
String Yf;
XYSeries currentSeries;
int nbSeries = 0;

int lengthSeries = 0 ;

for(int i=0 ; i < displayDataset.getSeriesCount() ; ++i)
{
if(displayDataset.getSeries(i).getKey().toString() != "Other Molecules"
&& displayDataset.getSeries(i).getKey().toString() != "Error"
&& displayDataset.getSeries(i).getKey().toString() != "Line"
&& displayDataset.getSeries(i).getKey().toString() != "Species")
{
++nbSeries;
}
if(displayDataset.getSeries(i).getItemCount() > lengthSeries)
{
lengthSeries = displayDataset.getSeries(i).getItemCount();
}
}

nbSeries = nbSeries * 2; //X et Y by Series
String[][] tabSeries = new String[nbSeries][lengthSeries + 1]; //+1 for the name

int k =0;
int u = 1;
for(int i=0 ; i < displayDataset.getSeriesCount() ; ++i)
{


if(displayDataset.getSeries(i).getKey().toString() != "Other Molecules"
&& displayDataset.getSeries(i).getKey().toString() != "Error"
&& displayDataset.getSeries(i).getKey().toString() != "Line"
&& displayDataset.getSeries(i).getKey().toString() != "Species")
{

if(displayDataset.getSeries(i).getKey().toString() != null)
{
String title = displayDataset.getSeries(i).getKey().toString();
int indexTau = title.indexOf("Tau");
if(indexTau != -1)
{
title = title.substring(0, indexTau - 3);
}

tabSeries[k][0] = TextFieldFormatFilter.remplissageDeZone("X"+title,false,' ',22);
tabSeries[u][0] = TextFieldFormatFilter.remplissageDeZone("Y"+title,false,' ',22);

}
else
{
tabSeries[k][0] = "";
tabSeries[u][0] = "";


}

for(int j=0 ; j < displayDataset.getSeries(i).getItemCount() ; ++j)
{


Xf = TextFieldFormatFilter.remplissageDeZone(displayDataset.getSeries(i).getDataItem(j).getX().toString(),false,' ',22);
tabSeries[k][j + 1] = Xf;

Yf =TextFieldFormatFilter.remplissageDeZone(displayDataset.getSeries(i).getDataItem(j).getY().toString().toString(),false,' ',22);

tabSeries[u][j + 1] = Yf;

}
k= k+2;
u = u +2;

}

}

try {
fileAscii = new BufferedWriter(new FileWriter(file));
int w =0;
int z = 0;
while(z <= lengthSeries)
{
while(w <= nbSeries)
{
try
{
fileAscii.write(tabSeries[w][z].toString() + "\t");
}
catch(Exception e)
{
fileAscii.write(" \t");
}


++w;
}
w = 0;
++z;
fileAscii.newLine();
}

fileAscii.close();
} catch (IOException e) {
System.err.println("Error during writing in the file /n" + e);
}


}

merci a tous ++

lafolle

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de lafolle24320
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
2
0
Merci
le pb peut se résumer de la façon suivante : existe t'il une méthode permettant d'indiquer le nuyméro de la colonne où l'on veut commencer à écrire?

merci
Commenter la réponse de lafolle24320
Messages postés
270
Date d'inscription
lundi 29 novembre 2004
Dernière intervention
23 août 2011
0
Merci
pourquoi tu designerais pas un character te permettant de savoir dans quel serie tu te trouves??

J.BAHOLE
Commenter la réponse de g_fuck
Messages postés
406
Date d'inscription
samedi 26 mars 2005
Dernière intervention
29 juin 2009
2
0
Merci
après 1 min??? non c'est 2h passé sur le net a trouver des solutions.... et je réponds pour fermer le topic si j'ai la solution et ainsi aider d'autres qui en aurait besoin..

a++
lafolle
Commenter la réponse de lafolle24320
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Dernière intervention
29 janvier 2010
11
0
Merci
je close apres avoir supprimer la rep de darkking

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
Commenter la réponse de sheorogath

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.