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

lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention - 2 avril 2007 à 14:11 - Dernière réponse : sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention
- 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
lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention - 2 avril 2007 à 16:27
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

Merci lafolle24320 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de lafolle24320
lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention - 2 avril 2007 à 14:31
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
g_fuck 270 Messages postés lundi 29 novembre 2004Date d'inscription 23 août 2011 Dernière intervention - 2 avril 2007 à 14:43
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
lafolle24320 406 Messages postés samedi 26 mars 2005Date d'inscription 29 juin 2009 Dernière intervention - 3 avril 2007 à 08:50
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
sheorogath 2465 Messages postés samedi 21 février 2004Date d'inscription 29 janvier 2010 Dernière intervention - 17 mai 2007 à 00:43
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.