IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Formater un fichier


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    a l' i.u.t. de ngaoundere
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : a l' i.u.t. de ngaoundere
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 6
    Points
    6
    Par défaut Formater un fichier
    bonjour à tous,
    j'ai un problème qui me dérange depuis un bon bout.
    je veux mettre ce fichier texte

    |Num du |Intitulé compl |
    |compte |et du compte |
    |------- |------------- |
    |101000 |Capital social |
    |------- |------------- |
    |123000 |Réserves facul |
    | |tatives et ext |
    | | raordinaires |
    |------- |------------- |
    partir d'un code java sous la forme suivante pour pouvoir l'importer sous excel


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Num du compte   Intitulé complet  du compte
    101000                Capital social
    123000                Réserves facultatives et extraordinaires
    voici le code en question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    String b= source_file.readLine();
    while(b!=null){
     
    String a = source_file.readLine();
    String c = source_file.readLine();
    	if( a!=null && (a.startsWith("|0") || a.startsWith("|1") ||                    a.startsWith("|2")|| a.startsWith("|3") || a.startsWith("|4")||a.startsWith("|5")|| a.startsWith("|6") || a.startsWith("|7")|| a.startsWith("|8")|| a.startsWith("|9")) ){
     
    			int_compte=a;	
    			int_compte = int_compte.substring(9, 24);
    			x=int_compte;
    									        }
    	while( c.startsWith("|     ")){
    		 dev=x+c.substring(9, 24);
    		 System.out.println(dev+"\r\n");
    		 dest_file.writeBytes(dev+"\r\n");
    								  }
     
    				}
    Je n’arrive toujours pas à transformer ce texte.
    J'ai besoin de l'aide s'il vous plait.
    Merci d'avance..

  2. #2
    Membre confirmé
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2009
    Messages : 236
    Points : 491
    Points
    491
    Par défaut
    Salut,

    Pour retrouver les données adéquat une regex serait la méthode la plus simple.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par Malinaka Voir le message
    Pour retrouver les données adéquat une regex serait la méthode la plus simple.
    Ça m'étonnerait. La règle est bien trop complexe.

    Je pense qu'il faut écrire un parseur assez élaboré. C'est une question difficile.

    - Il faut commencer par garder deux StringBuilders dans lesquels on mettra les caractères qui appartiennent à la première colonne et à la deuxième colonne.
    - Chaque ligne, on fait un split() sur | . On met le premier morceau dans le premier StringBuilder, le second morceau dans le second StringBuilder, et on ignore le reste.
    - Quand un morceau (ou les deux morceaux, en fait) ne contient que des - c'est le signe qu'on a fini une ligne du fichier de sortie. On écrit les deux StringBuilder dans le fichier, séparés par un tab, puis on les remet à zéro pour être prêt à lire la ligne suivante.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    un truc dans ce goût là?

    Pour chaque ligne:
    • Si ligne démarre avec "|---" : -> Prendre ce qu'on a concaténé temporairement, et l'ajouter à la liste des données lues
    • Si ligne correspond à "|(.*)|(.*)|", extraire groupe 1 et 2, faire un trim() et les concaténer à ce qu'on a déjà extrait aux lignes précédentes
    • Sinon, ignorer la ligne

Discussions similaires

  1. [FLASH MX2004] Format de fichier inattendu
    Par k2r.fr dans le forum Flash
    Réponses: 1
    Dernier message: 05/07/2005, 11h43
  2. [C / C++][Format de fichier] Le TIFF G4
    Par chronos dans le forum Windows
    Réponses: 1
    Dernier message: 17/06/2005, 15h57
  3. Format de fichier extensible
    Par Rodrigue dans le forum C++Builder
    Réponses: 9
    Dernier message: 11/06/2005, 14h45
  4. [Format de Fichier] Recherche de site
    Par Pedro dans le forum Windows XP
    Réponses: 5
    Dernier message: 12/04/2005, 16h11
  5. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 20h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo