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

avec Java Discussion :

Convertir un fichier texte en csv


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut Convertir un fichier texte en csv
    Bonjour,

    Je cherche a faire un travail de mis en forme d'un export comptable .txt en fichier csv, le fichier d'origine se presente de cette maniere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    4828BQ20180531                    649100     CIAE                           7131.00C                  C I A E                           O2003
    4828BQ20180531                    512350     BANQUE PAUVRE                 19182.70D                  SARL TAGG                         O2003
    Je souhaite organisé les données dans l'ordre suivant: date;journal;code;beneficiaire;credit;debit.
    ce qui ressemble a ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    2018/05/31;BQ;649100;CIAE;;7131.00
    2018/05/31;BQ;512350;BANQUEPAUVRE;19182.70;
    J'ai un peu honte de demandé mais bon , je me jette a l'eau..(je précise qu'il s'agit d'un exercice d’entraînement que je m'impose et non d'un besoin concret)

    Il y a t'il une api qui facilite le traitement, dois je faire une suite de condition? est ce que je peut allé cherché un numéro de position dans une ligne de mon fichier afin d'y inclure un point virgule...bref je ne sais pas ou démarrer.

    J'arrive a ouvrir mon fichier puis en faire affiché le contenu dans la console, mais sa s’arrête là et j'ai besoin de tuyau afin de m'orienter dans ma recherche.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
     
     
     
     
     
        public class TraitementFichier {
     
            public static void main(String[] args) throws IOException {
     
                try {
     
                    File f = new File("/home/anje84/Bureau/testcsv.txt");
     
                    BufferedReader b = new BufferedReader(new FileReader(f));
     
                    String readLine = "";
     
                    System.out.println("Reading file using Buffered Reader");
     
                    while ((readLine = b.readLine()) != null) {
                        System.out.println(readLine);
                    }
     
                } catch (IOException e) {
                    e.printStackTrace();
                }
     
            }
     
        }

  2. #2
    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
    Hello,

    La seule API qui va vraiment te simplifier la vie, c'est une qui peut lire ton fichier ligne par ligne.

    Je vois que tu connais déjà BufferedReader qui va faire ça pour toi. C'est parfait.

    Ensuite le problème qui se pose c'est comment séparer les différents champs de chaque ligne. À première vue c'est évident, ils sont séparés par des espaces, ou peut-être des mélanges d'espaces et tabulation. Des blancs, quoi.

    Sauf que, problème. Pour le 3e champ, on a comme exemples "CIAE" et "BANQUE PAUVRE". Le deuxième contient un espace, alors que c'est la valeur du champ. On ne peut donc pas dire "dès qu'il y a un ou plusieurs blancs, on passe au champ suivant." Parce qu'alors, sur la deuxième ligne, le 3e champ deviendrait "BANQUE" et le 4e serait "PAUVRE". Ça ne marche pas.

    On peut imaginer plusieurs solutions :

    - Les champs sont séparés par plusieurs blancs. C'est à dire qu'un espace tout seul reste un simple espace, et fait partie du champ. Mais au moins deux espaces qui se suivent, ça c'est une séparation entre les champs.

    Dans ce cas tu pourrais utiliser ligne.split("\\s{2,}") pour découper ta ligne en plusieurs champs, séparés par deux blancs ou plus.

    - Les champs 1 et 2 sont des codes sans blanc. Ils sont donc séparés dès qu'on tombe sur un blanc. Le champ 3 peut contenir des blancs à l'intérieur. Alors on sépare le champ 2 et 3 par des blancs, mais quand on tombe sur un blanc ensuite c'est pas forcément un séparateur, il peut faire partie du champ 3. Mais le champ 4 commence forcément par un nombre, et le champ 3 n'a pas le droit d'avoir un mot qui commence par un nombre. Donc si en lisant le champ 3 on tombe sur un blanc suivi d'un nombre, le nombre commence en fait le champ 4, et le blanc était le séparateur entre 3 et 4.

    Dans un cas comme celui-là, tu seras aidé par les expressions régulières et leurs groupes de capture.

    Une fois que tu as choisi une stratégie, il ne reste plus qu'à le faire :

    - lire le fichier ligne par ligne
    - pour chaque ligne, extraire les champs qui t'intéressent
    - convertir les champ de leur format de départ vers celui qui t'intéresse
    - construire la ligne que ça doit donner dans le fichier résultat
    - écrire cette ligne dans le fichier résultat
    - passer à la ligne suivante

    Citation Envoyé par anje84 Voir le message
    est ce que je peut allé cherché un numéro de position dans une ligne de mon fichier afin d'y inclure un point virgule...
    Non. On ne peut pas modifier l'intérieur d'un fichier texte. La seule chose à faire quand on a besoin de faire ça, est de réécrire le fichier entièrement, du début à la fin, en y faisant les modifications voulues en cours de route.

    Cela n'est pas tellement une question de Java mais a plutôt à voir avec la manière dont les fichiers fonctionnent en informatique.

    (Après, rien ne t'empêche de lire toutes les lignes du fichier en mémoire, de sorte de pouvoir les trouver en fonction de leurs numéros de ligne, puis ensuite de remplacer en mémoire chaque ligne par une autre où tu as ajouté des point-virgule, puis ensuite de réécrire toutes ces lignes dans un fichier. Mais ça me semble compliquer les choses pour rien.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Re-bonjour,

    Si je veut que a chaque ligne ou il y a ça 4828BQ20180531, je puisse faire cette séparation 4828;BQ;20180531; comment je peut m'y prendre?
    Mon but c'est d'arrivé a mettre les séparateur a des endroits ou il n'y a rien qui me permet de discriminé le contenu, cette chaine d'info finalement contient un numéro d’écriture , un code de journal, ainsi que la date..

    A moins que je dois fournir un modèle du genre chaque ligne dois être réécris sous cette forme XXXX;XX;XXXX/XX/XX; ect... ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. Pour ce qui est du découpage, il te faut à partir de la structure de ligne utiliser les méthodes adaptées de la classe String, selon les informations qu'il y a dans la ligne, comment elles sont "structurées", et ce que tu veux obtenir comme informations isolées.
      1. comment déjà dit, la méthode split() permet de découper la chaîne selon un séparateur défini par une expression régulière.
        Dans le cas de "4828BQ20180531", dont on veut obtenir "4828", "BQ", "20180531", et que "BQ" est toujours la valeur, on pourrait faire :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        String[] decoupage = string.split("BQ");
        String premierePartie = decoupage[0]; // le 4828
        String secondePartie = decoupage[1]; // le 20180531
      2. la méthode indexOf(String) te permet de connaître la position d'une chaîne dans une autre :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        int positionDeBQ = string.indexOf("BQ");
      3. la méthode substring(int, int) te permet d'extraire une partie d'une chaîne :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        String premierePartie = string.substring(0, string.indexOf("BQ")); // le 4828
        String secondePartie = string.substring( string.indexOf("BQ") + "BQ".length() ); // le 20180531
      4. etc. Regarde la JavaDoc de la classe java.lang.String et prend les méthodes qui te semblent le plus adaptées à chaque étape de récupération d'une information donnée
    2. Pour générer la ligne finale, les données donc séparées par des point-virgules
      1. Soit tu procèdes par concaténation en utilisant la classe StringBuilder
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        4
        5
        6
        7
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append( information1 );
        stringBuilder.append( ';' );
        stringBuilder.append( information2 );
        stringBuilder.append( ';' );
        stringBuilder.append( information3 );
        String ligneFinale = stringBuilder.toString();
        Attention, si une variation d'information est null, tu retrouveras le texte "null" dans la chaîne. Si tu veux plutôt une chaîne vide, il faut traiter le cas :
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if ( information2!=null ) stringBuilder.append(information2); // si information2 est null, on ne concatène rien
      2. Tu peux mettre les différentes informations dans un tableau :
        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
        Object[] ligneDeDonnees = new Object[nombreDeColonnes];
        ligneDeDonnees[0] = numero;
        ligneDeDonnees[1] = date;
        // etc
        StringBuilder stringBuilder = new StringBuilder();
        boolean first=true;
        for(Object donnee : ligneDeDonnees) {
           if ( first ) { 
                first = false;
           }
           else {
                stringBuilder.append(';');
           }
           if ( donnee != null ) {
                stringBuilder.append( donnee );
           }
        }
        Attention, append( donnee ) utilise la méthode standard toString() pour la convertion en String, ou concatène "null" si la variable vaut null. Il faudra traiter spécifiquement les cas à part (comme par exemple pour formater la date en JJ/MM/AAAA).
      3. La classe java.util.StringJoiner fait tout ça pour toi, sauf qu'il te faut d'abord convertir les informations en String
        Code : Sélectionner tout - Visualiser dans une fenêtre à part
        1
        2
        3
        4
        5
        6
        String[] informationsSousFormeDeString = /* création du tableau */
        StringJoiner joiner = new StringJoiner(";"); 
        for(String information : informationsSousFormeDeString) {
        	joiner.add(information);
        }
        String ligneFinale = joiner.toString();
      4. etc
    3. En complément, il y a différentes classes qui pourront t'aider. Par exemple pour passer d'une date sous la forme "20180531" à la forme "31/05/2018", tu peux utiliser java.time.DateTimeFormatter, pour convertir la première forme en date, puis celle-ci dans la forme finale.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour

    J'ai pris les deux lignes données et j'ai aperçu qu'il n'y a pas de séparateur mais c'est un fichier plat (flat file), donc les champs sont basés sur le nombre de caractères mais pas avec un séparateur. Tu dois donc prendre toute la ligne et utiliser un substring pour avoir chaque champ et trim pour supprimer les espaces qui complète le nombre de caractères pour chaque champ.

    A+.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    C'est pas plutôt des fichiers à largeur fixe ?

    Si oui tu dois connaitre la taille allouée à chaque colonne et ce que la colonne représente.

    J'ai eu des fichiers comptable à parser récemment qui fonctionnait de cette façon.

    Amuse toi bien :p

    Bien à toi,

    Namaa

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    OHHH punaise!

    Je viens de voir toutes les réponses , je suis passé sur le forum a cause d'un mail de laethy , je pensé que mon appel d'aide n’intéressait personne..
    Et bien je vais prendre le temps de lire et testé toute ces propositions et merci a tous avant tout je vais aussi m'abonné au post, mais ça ne ce fais pas automatiquement quand on est le posteur?

  8. #8
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Alors j'ai lu un peu en diagonale, du coup je me suis mal exprimé...

    extraire du contenu sur une variable de type chaine, sa ne me pose pas forcément un problème d'ailleurs.

    Mais conceptuellement parlant je ne sais pas comment faire le même traitement dans un fichier avec toutes les lignes dedans...

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par anje84 Voir le message

    Mais conceptuellement parlant je ne sais pas comment faire le même traitement dans un fichier avec toutes les lignes dedans...
    Mais dans ton premier message tu montres pourtant un code qui lit ligne à ligne un fichier et fait un traitement sur chaque ligne (soit l'afficher par System.out.println) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     while ((readLine = b.readLine()) != null) {
                        System.out.println(readLine);
                    }
    Si tu sais découper une ligne et que tu sais faire cette boucle, où est le problème de remplacer le System.out.println par le découpage de la ligne ? De même, après avoir extrait les informations d'une ligne, tu produis à partir de ces infos la ligne finale et tu l'écris dans le fichier de sortie...

    En gros tu avais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     while ((readLine = b.readLine()) != null) {
                        faireMachin(readLine);
                    }
    et tu auras
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     while ((readLine = b.readLine()) != null) {
                        faireTruc(readLine);
                    }
    du coup, je ne vois pas bien quel est ton problème...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Et bien une fois que je vois t'on explication (faire un truc) ça débloque la limitation mentale auto construite.
    Je me suis cantonné au traitement d'une string dans une variables et non dans une condition (tant que)...a la lecture du fichier ligne par ligne.
    Mea culpa je code très peu et je suis toujours en cours de formation débutant, le fait de pouvoir pratiqué me permet de m'affranchir de ces limitation conceptuelle, un peu comme une personne qui n'a pas l'habitude d'un pc et qui a peur de le cassé en cliquant de-partout.

    Mais en tout cas merci encore je vais m'éssayé a mettre ne serais que un point virgule a chaque ligne. Pour le code que j'ai fourni sur le bufferdreader il s'agit d'un code que j'ai glané sur web.. dont je me suis dit c'est dans ce sens que je dois cherché...

  11. #11
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par anje84 Voir le message
    je vais aussi m'abonné au post, mais ça ne ce fais pas automatiquement quand on est le posteur?
    Tu peux avoir une notification automatique, va sur ton tableau de bord --> Mes paramètres --> Options générales et là tu choisie la méthode qui te convient.

    A+.

  12. #12
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Bonjour!

    voici un bout de code que j'ai atttaqué:

    fichier de départ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    4828BQ20180531                    649100     CIAE                           7131.00C                  C I A E                           O2003
    4828BQ20180531                    512350     BANQUE PAUVRE                 19182.70D                  SARL TAGG                         O2003
    4829SG20180531                    661600     INTERETS EMPRUN                  55.84D                  INTERETS BANC. & SUR OPER. FINANC.O2003
    4829SG20180531                    164120     EMPRUNT                         244.17D                  PRET S G 5000                     O2003
    4829SG2018053120180531            401OFF     MAURICE                         230.85D                  MAURICE DUPAT                      O2003
    4829SG20180531                    455100     CT UNE FOIS                     300.00D                  CT CT TU LASU                     O2003
    4829SG20180531                    661600     COTISATION      PRO              31.08D                  INTERETS BANC. & SUR OPER. FINANC.O2003
    4829SG2018053120180531            401ESS     GASOIL                          104.70D                  GASOIL                            O2003
    4829SG20180531                    164120     PRET                            167.27D                  PRET S G 5000                     O2003
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    public class TraitementFichier {
     
            public static void main(String[] args) throws IOException {
     
                try {
     
                    File f = new File("/home/anje84/Bureau/testcsv.txt");
     
                    BufferedReader b = new BufferedReader(new FileReader(f));
     
                    String readLine = "";
     
                    System.out.println("Reading file using Buffered Reader");
     
                    while ((readLine = b.readLine()) != null) {
                        String part1=readLine.replace("4828BQ20180531                    649100     CIAE                           7131.00C                  C I A E                           O2003","4828;BQ;2018/05/31;649100;CIAE;7131.00;C;C I A E;02003");
     
     
                            System.out.println(part1);
     
     
     
     
                    }
     
                } catch (IOException e) {
                    e.printStackTrace();
                }
     
            }
     
        }
    en retour de console ça me donna ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    4828;BQ;2018/05/31;649100;CIAE;7131.00;C;C I A E;02003
    4828BQ20180531                    512350     BANQUE PAUVRE                 19182.70D                  SARL TAGG                         O2003
    4829SG20180531                    661600     INTERETS EMPRUN                  55.84D                  INTERETS BANC. & SUR OPER. FINANC.O2003
    4829SG20180531                    164120     EMPRUNT                         244.17D                  PRET S G 5000                     O2003
    4829SG2018053120180531            401OFF     MAURICE                         230.85D                  MAURICE DUPAT                      O2003
    4829SG20180531                    455100     CT UNE FOIS                     300.00D                  CT CT TU LASU                     O2003
    4829SG20180531                    661600     COTISATION      PRO              31.08D                  INTERETS BANC. & SUR OPER. FINANC.O2003
    4829SG2018053120180531            401ESS     GASOIL                          104.70D                  GASOIL                            O2003
    4829SG20180531                    164120     PRET                            167.27D                  PRET S G 5000                     O2003
    Apparement sur une ligne sa marche mais pour le reste... a la fois c'est normal parce que mon modèles sur la base de( replace ) identifie les caractères que je lui donne a mangé puis remet ce que je lui dit...

    Serais possible de lui dire :

    pour chaque ligne dans readline.replace(" au 5eme caractère+8eme+entre le 15 et 16eme+ect" par ";");
    print le resultat.

  13. #13
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String part1=readLine.replace("4828BQ20180531                    649100     CIAE                           7131.00C                  C I A E                           O2003","4828;BQ;2018/05/31;649100;CIAE;7131.00;C;C I A E;02003");
    string.replace(string1, string2) ça ne fait que remplacer les occurrences de string1 trouvées dans string par string2 ! "abab".replace("a","c") ça donne "cbcb".
    Comme la première chaîne se trouve être la première ligne, tu as bien un remplacement pour la première ligne. Pour les autres, étant toutes différentes de la première ligne, ça ne risque pas de fonctionner et elles restent telles quelles !!!

    Citation Envoyé par anje84 Voir le message
    Serais possible de lui dire :

    pour chaque ligne dans readline.replace(" au 5eme caractère+8eme+entre le 15 et 16eme+ect" par ";");
    print le resultat.
    Non, parce que String.replace() n'interprète pas une phrase en français qui dirait ce qu'il faut réaliser. Pour faire ça, on écrit un programme. En utilisant les outils fournis et dont on a parlé précédemment et qui sont évoqués dans le tutoriel que tu as cité. Ou éventuellement des expressions régulières, mais ça ne sert pas à grand chose dans ton cas à mon avis. Quant à avoir un analyseur syntaxique qui comprend le français afin de déterminer quel algorithme de transformation, c'est un autre sujet, qui ne concerne pas la rubrique de programmation Java. Si tu cherches à le faire en Java, il va falloir programmer... écrire du code Java...

    Déjà, ce n'est pas remplace quoique ce soit par ;, mais insérer. Et insérer dans une chaîne, c'est pas possible en Java : une chaîne est immuable. Soit on fabrique une autre chaîne, par exemple, pour insérer au 5ème caractère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StringBuilder sb = new StringBuilder();
    sb.append(readLine.substring(0, 4)).append(";"); // ajoute les 4 premiers caractères puis un ;
    sb.append(readLine.substring(4)); // ajoute la fin de la châine
    String part1 = sb.toString(); // part1 vaut 4828;BQ20180531                    649100     CIAE                           7131.00C                  C I A E                           O2003
    Tu peux aussi construire un StringBuilder() avec la chaîne complète, et t'en servir pour modifier la chaîne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StringBuilder sb=new StringBuilder(readLine);
    sb.insert(4, ';'); // insertion au 5ème caractère d'un point-virgule
    Mais ça ne sera pas plus facile pour construire la chaîne que dans le premier cas (il est plus facile d'ajouter ce dont on a besoin que d'enlever ce dont on n'a pas besoin, sans parler du décalage du curseur à prendre en compte ()).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Pour t aider a comprendre ta boucle de traitement. Essaye d abord de recuperer tout le contenu de ton fichier pour le mettre dans le fichier final sans modification.
    Ca sera une bonne chose.
    Puis dans ta boucle, quand tu lis ton fichier ligne par ligne, tu peux t amuser a faire des extractions de sous chaine et voir le resultat dan s ton fichier de sortie.
    Ton fichier semble etre un fichier a largeur fixe pour chaque type de colonne.
    Par exemple dans ta boucle, la ou tu recuperes une ligne de ton fichier contenu dans ta variable readline. Tu peux t entrainer a extraire le code journal code sur 2 positions.
    Readline.substring(5,7) + ";" + autre souschaine +";"+ autreschaine +";" etc...
    Comme ca tu pourras voir le resultat dans ton fichier cible.
    Ps: j ecris sur smartphone. pas tres pratique😈

  15. #15
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    j'y suis arrivé di dieu:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    import java.io.*;
     
     
    public class TraitementFichier {
     
        public static void main(String[] args) throws IOException {
     
            try {
     
                File f = new File("/home/anje84/Bureau/testcsv.txt");
     
                BufferedReader b = new BufferedReader(new FileReader(f));
     
                String readLine = "";
     
                System.out.println("Reading file using Buffered Reader");
     
                while ((readLine = b.readLine()) != null) {
     
     
     
                   String test = readLine.substring(5, 7).trim() + ";" + //journal
     
                            readLine.substring(13, 15).trim() + "/" +   //le jour
                            readLine.substring(11, 13).trim() + "/" +   //Le mois
                            readLine.substring(7, 11).trim() + ";" +    //L'année
                            readLine.substring(34, 46).trim().replace(" ", "").trim() + ";" +  //reference
                            readLine.substring(46, 69).trim() + ";" +   //libellé
                            readLine.substring(75, 84).replace(" ", "").trim() + ";" +   //Montant
                            readLine.substring(84, 85).trim() + ";" +   //crédit,debit
                            readLine.substring(103, 136)+"\r\n" //beneficiaires
                            ;
     
     
                   String monfichier=new String(test);
     
     
     
     
     
     
                    File fichcsv = new File("exportCSV.csv");
     
                    if (!fichcsv.exists()) {
                        fichcsv.createNewFile();
                    }
     
     
     
                    FileWriter fw = new FileWriter(fichcsv.getAbsoluteFile(),true);
                    BufferedWriter bw = new BufferedWriter(fw);
                    bw.write(monfichier);
                    bw.close();
     
     
     
     
     
     
     
                System.out.println(monfichier);
     
     
                }
     
     
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("modif terminé");
        }
     
    }
    Le fichier créer donne ça :
    (c'est le vrai fichier qui contient 2000 lignes pas en entier bien sur , mais avec quelques noms changés ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    OD;30/06/2018;437300;JUIN ALESIA;1613.22;C;GROUPR MERNOY                    
    BQ;31/05/2018;401MET;METRO;10.11;D;METRO                            
    BQ;31/05/2018;401MET;METRO;7.82;D;METRO                            
    BQ;31/05/2018;401MET;METRO;255.30;D;METRO                            
    BQ;31/05/2018;661600;COMMISSION CB;1.12;D;INTERETS BANC. & SUR OPER. FINANC
    Maintenant j'ai l'exception dans la console qui me dit ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 46
    	at java.lang.String.substring(String.java:1963)
    	at TraitementFichier.main(TraitementFichier.java:27)
    Je comprends bien que dans mon code a la ligne 27 il y a un truc mais lequels

  16. #16
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Non, parce que String.replace() n'interprète pas une phrase en français qui dirait ce qu'il faut réaliser. Pour faire ça, on écrit un programme. En utilisant les outils fournis et dont on a parlé précédemment et qui sont évoqués dans le tutoriel que tu as cité. Ou éventuellement des expressions régulières, mais ça ne sert pas à grand chose dans ton cas à mon avis. Quant à avoir un analyseur syntaxique qui comprend le français afin de déterminer quel algorithme de transformation, c'est un autre sujet, qui ne concerne pas la rubrique de programmation Java. Si tu cherches à le faire en Java, il va falloir programmer... écrire du code Java...
    Evidemment que le code ne ce fait pas en Français...c'est juste que humainement parlant j'arrive a mieux m'exprimé comme ça

    Mais merci pour tes conseils!

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par anje84 Voir le message
    Maintenant j'ai l'exception dans la console qui me dit ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 46
    	at java.lang.String.substring(String.java:1963)
    	at TraitementFichier.main(TraitementFichier.java:27)
    Je comprends bien que dans mon code a la ligne 27 il y a un truc mais lequels
    Cette exception indique que tu accèdes à un caractère à une position qui n'existe pas dans la chaîne. Ici la position 46, parce que la chaîne doit faire moins de 47 caractères.
    Déjà, tu sais que l'exception est à la ligne 27. Donc tu peux savoir quel appel de substring cause l'exception. La question est de savoir pour quelle ligne du fichier d'entrée est lancée l'exception. Pour ce faire, soit tu utilises le mode debug et tu exécutes en pas à pas (ce qui peut être fastidieux avec 2000 lignes), soit tu mets des traces dans ton code (tu affiches des infos comme la ligne et sa longueur pour commencer).
    Ensuite, pour éviter l'exception : soit le cas est normal parce qu'il y a effectivement des lignes qui font moins de 46 caractères, et donc il faut les traiter de façon différente, soit elle ne l'est pas et il faut analyser pourquoi on l'obtient, et écrire le code qu'il faut pour l'éviter.
    L'hypothèse la plus logique est que tu dois avoir des lignes vides dans ton fichier, probablement la dernière (parce qu'on produit souvent un fichier de lignes en ajoutant un retour chariot à la fin). Pour régler le problème, il suffit d'ignorer les lignes vides dans le traitement, en faisant par exemple, avant la construction de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( readLine.trim().isEmpty() ) continue;
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #18
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Bingo tu as vu juste! plus d'erreurs

    Citation Envoyé par joel.drigo Voir le message
    L'hypothèse la plus logique est que tu dois avoir des lignes vides dans ton fichier, probablement la dernière (parce qu'on produit souvent un fichier de lignes en ajoutant un retour chariot à la fin). Pour régler le problème, il suffit d'ignorer les lignes vides dans le traitement, en faisant par exemple, avant la construction de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( readLine.trim().isEmpty() ) continue;

  19. #19
    Membre régulier Avatar de gloax29
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 55
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    autre possibilité:

    création d'un bean de référence :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    import java.util.Date;
     
    import javax.flat.bind.annotation.csv.CsvMappingParse;
    import javax.flat.bind.annotation.positinal.PositionalJavaTypeAdapter;
    import javax.flat.bind.annotation.positinal.PositionalMappingParse;
     
    public class BeanSource {
                // annotation pour creer la ligne csv et indiquer la possition
                @CsvMappingParse(offset = 1)
                //pour parcer la ligne le debut de la chaine et la longueur
                @PositionalMappingParse(offset = 5, length = 2, padding = PositionalMappingParse.LEFT, stripChaine = true) 
                private   String journal ;                                             
                @CsvMappingParse(offset = 2)
                @PositionalMappingParse(offset = 7, length = 8, padding = PositionalMappingParse.LEFT, stripChaine = true)
                //   format 30/06/2018 pour 20180630  7 a 15
                @PositionalJavaTypeAdapter( value = DateConvert.class)
                private   Date date ;
                @CsvMappingParse(offset = 3)
                @PositionalMappingParse(offset = 34, length = 12, padding = PositionalMappingParse.LEFT, stripChaine = true)
                private   String reference ;//                                     
                @CsvMappingParse(offset = 4)
                @PositionalMappingParse(offset = 46, length = 23, padding = PositionalMappingParse.LEFT, stripChaine = true)
                private   String libellé ;//                                        
                @CsvMappingParse(offset = 5)
                @PositionalMappingParse(offset = 75, length = 9, padding = PositionalMappingParse.RIGHT, stripChaine = true)
                private   String Montant ;//                                        
                @CsvMappingParse(offset = 6)
                @PositionalMappingParse(offset = 84, length = 1, padding = PositionalMappingParse.LEFT, stripChaine = true)
                private   String crédit_debit ;//                                       
                @CsvMappingParse(offset = 7)
                @PositionalMappingParse(offset = 103, length = 33, padding = PositionalMappingParse.LEFT, stripChaine = true)
                private   String beneficiaires ;//                                        
     
     
                getter/setter
    le convert pour la date :


    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
     
    import javax.flat.bind.JFFPBException;
    import javax.flat.bind.annotation.adapter.PositionalAdapter;
     
    /**
     * converti le format entrer yyyyMMdd en date <br />
     * pour la sortie csv en dd/MM/yyyy
     * @author 
     */
    public class DateConvert extends PositionalAdapter<String, Date> {
     
        private static SimpleDateFormat sdfout = new SimpleDateFormat("dd/MM/yyyy");
        private static SimpleDateFormat sdfin = new SimpleDateFormat("yyyyMMdd");
        @Override
        public Date unmarshal(String v) throws JFFPBException {
            try {
                return sdfin.parse(v);
            } catch (ParseException e) {
     
                e.printStackTrace();
                return null ;
            }
        }
     
        @Override
        public String marshal(Date v) throws JFFPBException {
            return sdfout.format(v);
     
        }
     
     
    }
    la class root du fichier :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.flat.bind.annotation.positinal.PositionalFormatFile;
    import javax.flat.bind.annotation.positinal.PositionalMappingParseRootElem;
     
    /*
     * Creation : 20 sept. 2018
     */
    @PositionalFormatFile(name = "FichierSource")
    public class FichierSource {
     
        @PositionalMappingParseRootElem( startRowsIterationLigne = 1,list = true, name = "beanSources", theclass = BeanSource.class, charcatereRepli = ' ')
        private List<BeanSource> beanSources ;
     
        /**
         * Getter beanSources
         * 
         * @return the beanSources
         */
        public List<BeanSource> getBeanSources() {
            if(beanSources == null){
                beanSources = new ArrayList<BeanSource>();
            }
            return beanSources;
        }
     
        /**
         * Setter beanSources
         * 
         * @param beanSources the beanSources to set
         */
        public void setBeanSources(List<BeanSource> beanSources) {
            this.beanSources = beanSources;
        }
     
    }
    et un main pour lancer le traiment :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.nio.charset.StandardCharsets;
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.flat.bind.JAFFBContext;
    import javax.flat.bind.JFFPBException;
    import javax.flat.bind.Marshaller;
    import javax.flat.bind.Unmarshaller;
     
    /*
     * Creation : 20 sept. 2018
     */
     
    public class MainTraitement {
     
     
     
     
        public static void main(String[] args) throws FileNotFoundException, IOException, JFFPBException {
            // declaration de la class root
            JAFFBContext context = JAFFBContext.newInstance(FichierSource.class);
           Unmarshaller unmarshaller = context.createUnmarshaller() ;
           Marshaller marshaller = context.createMarshaller() ;
           FichierSource fichierSource =   (FichierSource) unmarshaller.unmarshal(new File("in.txt"));
     
           List<String> chaineCsv = new ArrayList<String>() ;
          for (BeanSource bean : fichierSource.getBeanSources() ) {
              // en indiquant le caractere separateur
              chaineCsv.add(marshaller.convertObjectInChaineCsv(bean, ";"));
     
     
     
        }
     
     
            try (OutputStreamWriter out = new OutputStreamWriter(
                    new FileOutputStream("out.csv"),
                    StandardCharsets.ISO_8859_1)) {
     
                //ecrit le fichier
                writerMappingInFileCsv(out,chaineCsv) ;
     
     
     
     
            }
     
     
        }
     
     
     
     
        public static void writerMappingInFileCsv(OutputStreamWriter out, List<String> chaineString) {
     
            try (PrintWriter creerFichierCsv = new PrintWriter(out, true)) {
     
                for (String infosFile : chaineString) {
     
                    creerFichierCsv.println(infosFile);
     
                }
     
                creerFichierCsv.flush();
            }
     
        }
     
    }


    et le fichier est créer.

  20. #20
    Membre régulier
    Homme Profil pro
    Technicien réseaux télécom
    Inscrit en
    Juin 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2013
    Messages : 37
    Points : 82
    Points
    82
    Par défaut
    Salut!
    Je viens de voir t'on code gloax29, merci pour ta participation. Les bean j'ai jamais vu ça va falloir que j'aille fouillé la doc..
    J'ai fini mon code je vais l'anonymiser et le posté des que je peut.

    Ma prochaine étape sera d'essayer de créer une interface graphique afin de pouvoir dynamiquement choisir le fichier et la destination.
    Mais en ce moment j'ai un gros chat a fouetté, je dépanne un amis qui a choppé un ransonware de merd..

    J'essaye de scripté une sauvegarde automatisé sur une vm:
    https://www.developpez.net/forums/d1...egarde-disque/

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [CSV] convertir un fichier texte formaté en CSV
    Par cotede2 dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2009, 18h08
  2. Convertir un fichier texte du format csv au format hws
    Par slayer23 dans le forum MATLAB
    Réponses: 8
    Dernier message: 14/06/2007, 17h48
  3. Réponses: 13
    Dernier message: 05/07/2006, 09h39
  4. [Excel] Convertir un fichier xls en csv sous UNIX
    Par Tsuful dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/04/2006, 11h12
  5. Convertir un fichier texte ms-dos
    Par frechy dans le forum Windows
    Réponses: 8
    Dernier message: 02/03/2006, 20h59

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