Dessiner un tableau dans un fichier [Résolu]

jsand094 - 29 sept. 2012 à 21:00 - Dernière réponse :  jsand094
- 5 oct. 2012 à 05:47
Bonjour,
Il y a un petit décalage que vous remarquerez lorsque vous l'executerez. Vous verrez la petite astuce que je me suis trouvée, mais elle ne fonctionne pas très bien.

package javaapplication5;

/**
 * @author sandé
 */
    import java.io.*;
    import java.util.Scanner;
public class JavaApplication5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int achat;
        int ventes;
        int benefice;
        int enr;
        
        File f = new File("Bilan.txt");
     
                try{ 
                        boolean ajout = true;
                        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(f, ajout)));
                        
                                pw.println("                                                                ");
                                pw.println("   +-----------------------------------------------------------+");
                                pw.println("   !     ACHAT       !      VENTE        !      BENEFICE       !");
                                pw.println("   +-----------------------------------------------------------+");
                                
                        System.out.println("combien d enregistrements ?");
                        enr = sc.nextInt();    
                        
                        for(int i=1; i<=enr; i++){
                                System.out.println("achat: ");
                                            achat = sc.nextInt();
                                System.out.println("vente: ");
                                            ventes = sc.nextInt();
                                       benefice = ventes - achat;
                                        
                                        pw.println("   !    "+achat+"    !    "+ventes+"     !     "+benefice+"    !");  // ecriture dans le fichier
                                System.out.println("   !    "+achat+"    !    "+ventes+"     !     "+benefice+"    !");  // ecriture a l'ecran
                                    //    pw.println("   +-----------------+-------------------+---------------------+");  // tracer un trait dans le fichier (ca fonctionne. je lia enleve pour que tu voix le decalage)
                        }
                        
                           // REMARQUE : il y a un petit decalage. C'est pour resoudre ce probleme que j'ai decise d'ouvrir 2 fois le me fichier pour ecrire dedans.
                        
                                pw.close();
                }catch(Exception Ex){
                        System.out.println("Probleme avec le fichier...");
                }       
              
  
    }
}

Merci d'avance pour vos suggestions Jsande
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscriptionModérateurStatut 17 mai 2018 Dernière intervention - 1 oct. 2012 à 11:09
3
Merci
Salut,

Je n'exécute jamais les codes, mais je crois comprendre ce qui t'arrive, tu voudrais faire un vrai tableau mais étant donné que tu ne maîtrises pas la taille du texte entré, tes colonnes ne sont pas propres.

Je te conseil d'utiliser ces fonctions :

public String espaces(int nombre){
   StringBuilder sb = new StringBuilder();
   for(int i=0; i<nombre; i++){
      sb.append(" ");
   }
   return sb.toString();
}

public String creerLigne(String achat, String vente, String benefice){
   StringBuilder sb = new StringBuilder();
   sb.append("   ! ");
   sb.append(achat);
   sb.append(espaces(16-achat.length));
   // idem pour les autres
   return sb.toString();
}

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cs_Julien39
0
Merci
Oui ! c'est parfait, vous avez bien vu le truc sans même l'exécuter.
Merci et bonne journée!

Jsande
Commenter la réponse de jsand094

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.