cs_bossou
Messages postés71Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 7 octobre 2011
-
1 juin 2009 à 17:24
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
2 juin 2009 à 18:23
Bonjour.
j'ai un fichier texte dans lequel je voudrais insérer des espaces à la fin de chaque ligne jusqu'à atteindre 119 caractères par ligne.j'ai essayé de faire ceci:
int
nbCaract= 119;String space=" "; (l'élément à insérer)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 1 juin 2009 à 17:41
Salut,
Il te suffit d'ajouter autant d'espace que nécessaire à chaque ligne pour que la longueur de la ligne fasse 119 caractères (bien entendu, il faut utiliser un StringBuffer pour optimiser les performances !) :
final int NOMBRE_CARACTERES = 119;
final String CARACTERE_FIN = " ";
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 2 juin 2009 à 14:32
Normal.
tu modifies le contenu de ton tableau mais tu écris la variable new_test dans le fichier mais vu que tu fais de la concaténation de chaines, d[i] et new_test ne pointent pas sur la même valeur.
Tu écris donc ce que tu as lu. Remplace fichier.write(new_test) par fichier.write(d[i]).
De plus change le sens de la condition sur la longueur :
if (longueur < NOMBRE_CARACTERES)
cs_bossou
Messages postés71Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 7 octobre 20111 2 juin 2009 à 16:39
je m'excuse de dérranger encore une fois pour mon problème. le programme marche bien mais il ne prend pas en compte la dernière ligne du fichier. il ne justifie pas la dernière ligne comme les autres à 119 caractères:
String fich="C:/fichierText.txt2";
File f = new File(fich);
// chargement du fichier dans le bufferedReader
BufferedReader b = new BufferedReader(new FileReader(f.toString()));
String c, line ="";
//tant qu'on n'est pas à la fin du fichier
while((c = b.readLine()) != null)
{
//on ajoute les lignes
line += c+"\n";
}
//à la fin de chaque ligne on passe à la ligne suivante
String d[] = line.split("\n");
String new_test ="";
FileWriter fichier= new FileWriter(fich);
for (int i=0; i<d.length-2;i++)
{
final int NOMBRE_CARACTERES = 119;
final String CARACTERE_FIN =" ";
new_test= d[i];
int longueur = new_test.length();
if (longueur < NOMBRE_CARACTERES)
{
longueur = NOMBRE_CARACTERES - longueur;
}
else
{
longueur = 0;
}
for (int j = 0; j < longueur; j++)
{
d[i] += CARACTERE_FIN;
}
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 2 juin 2009 à 17:31
tu n'écris pas toutes les lignes car tu t'arrêtes à l'avant dernière (d[d.length-2]). Ensuite cette ligne ne passe pas dans la boucle.
Pourquoi ta condition de sortie de boucle est i<d.length-2 et non i<d.length ?
cs_bossou
Messages postés71Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 7 octobre 20111 2 juin 2009 à 17:53
je fais i<d.length-2 pour supprimer les deux dernières lignes. Le but de mon programme est en fait de supprimer la dernière ligne de mon fichier et de justifier toutes les lignes à 119 caractères. là je supprime bien la ligne que je veux maislorsqu'il justifie toutes les lignes du fichier à 119 caractères il ne prend pas en compte la dernière ligne.