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

IO Java Discussion :

Suppression ligne fichier texte


Sujet :

IO Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2006
    Messages : 197
    Points : 42
    Points
    42
    Par défaut Suppression ligne fichier texte
    Je recherche une fonction qui permet de supprimer une ligne dans un fichier texte

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    octobre 2003
    Messages
    2 821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : octobre 2003
    Messages : 2 821
    Points : 3 333
    Points
    3 333
    Par défaut
    Salut,

    Ca n'existe pas autant que je sache : il faut que tu le programmes toi même.

    A+
    K

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 431
    Points : 21 304
    Points
    21 304
    Par défaut
    Comme l'a dit Kilvaiden, ca n'existe pas ainsi, mais c'est très facile à faire. Il te suffit de parcourir tout le fichier texte et de réécrire toutes les lignes dans un autre fichier et si tu rencontres un ligne que tu veut supprimmer, tu ne l'écris pas dans le deuxième fichier. A la fin de l'opération, soit tu renommes le deuxième fichier par le nom premier, soit tu gardes ainsi.

    Si tu ne veut pas passer par un deuxième fichier, tu dois tout stocker dans ton programme sauf les lignes à supprimmer et ensuite tout réécrire dans le fichier de départ.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2006
    Messages : 197
    Points : 42
    Points
    42
    Par défaut
    merci bien de vos repondre,mais comment on recrit sur le meme fichier ceux que l on veut,il ne rajoutera pas a la fin du fichier...

  5. #5
    Membre éclairé Avatar de sozie9372
    Inscrit en
    mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Tu peux essayer de la remplacer...
    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
     
    public static boolean readReplace(String fileName, String oldPattern,
                String replPattern, int lineNumber) {
            String line;
            StringBuffer sb = new StringBuffer();
            int nbLinesRead = 0;
            try {
                FileInputStream fis = new FileInputStream(fileName);
                BufferedReader reader = new BufferedReader(new InputStreamReader(
                        fis));
                while ((line = reader.readLine()) != null) {
                    nbLinesRead++;
                    line = line.toLowerCase();
     
                    if (nbLinesRead == lineNumber) {
                        line = line.replaceFirst(oldPattern.toLowerCase(),
                                replPattern);
                    }
                    sb.append(line + "\n");
                }
                reader.close();
                BufferedWriter out = new BufferedWriter(new FileWriter(fileName));
                out.write(sb.toString());
                out.close();
     
            } catch (Exception e) {
                return false;
            }
            return true;
        }
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    avril 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2006
    Messages : 197
    Points : 42
    Points
    42
    Par défaut
    merci,ca marche...

  7. #7
    Membre actif
    Inscrit en
    juin 2005
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 494
    Points : 202
    Points
    202
    Par défaut
    Bonsoir
    j'aimerais utiliser le code que vous venez de donner mais y'a un petit détail que je ne comprend pas: à quoi servent "String oldPattern" et "String replPattern"?
    Merci.

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 826
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 826
    Points : 20 062
    Points
    20 062
    Par défaut
    En fait, ce code sert à traiter une ligne précise du fichier, en remplaçant une partie de cette ligne, oldPattern, par autre chose, replPattern.

    Si on veut supprimer la ligne, il ne faut pas la traiter, mais simplement ne pas la mettre dans le fichier réécrit.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Inscrit en
    juin 2005
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 494
    Points : 202
    Points
    202
    Par défaut
    Ah d'accord,je comprends le principe.Mais qu'est ce que vous entendez par "en remplaçant une partie de cette ligne, par autre chose".Par quoi va t'on remplacer le ligne qu'on ne veut pas écrire?
    Et puis j'imagine que "filename" prend en paramètre le nom du fichier,"lineNumber" le numéro de la ligne qu'on veut remplacer,mais je sais toujours pas ce que je dois donner en paramètre pour oldPattern et replPattern.
    Merci encore

  10. #10
    Membre actif
    Inscrit en
    juin 2005
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 494
    Points : 202
    Points
    202
    Par défaut
    N'y aurait il pas une âme charitable pour me répondre?

  11. #11
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 431
    Points : 21 304
    Points
    21 304
    Par défaut
    Citation Envoyé par momjunior Voir le message
    N'y aurait il pas une âme charitable pour me répondre?
    Tu pourrais faire un effort. Thelvin t'a donné la réponse.

    Il suffit de lire le fichier intégralement et le réécrire sans la ligne 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
    19
    20
    21
    22
    23
    public static boolean deleteLine(String fileName, int lineNumber) {
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
     
                StringBuffer sb = new StringBuffer(); 
                String line;    
                int nbLinesRead = 0;       
                while ((line = reader.readLine()) != null) {
                    if (nbLinesRead != lineNumber) {
                        sb.append(line + "\n");
                    }
                    nbLinesRead++;
                }
                reader.close();
                BufferedWriter out = new BufferedWriter(new FileWriter(fileName));
                out.write(sb.toString());
                out.close();
     
            } catch (Exception e) {
                return false;
            }
            return true;
        }
    Après, faudra juste revoir la gestion des exceptions.

  12. #12
    Membre actif
    Inscrit en
    juin 2005
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 494
    Points : 202
    Points
    202
    Par défaut
    Oui j'avais compris,mais je voulais savoir ce que je dois donner en paramètre concernant "String oldPattern" et "String replPattern".En plus dans la dernière méthode que vous venez de me donner,vous les avez supprimer,donc on dirait qu'ils servaient pas à grand chose.

  13. #13
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2005
    Messages : 7 431
    Points : 21 304
    Points
    21 304
    Par défaut
    Citation Envoyé par momjunior Voir le message
    Oui j'avais compris,mais je voulais savoir ce que je dois donner en paramètre concernant "String oldPattern" et "String replPattern".En plus dans la dernière méthode que vous venez de me donner,vous les avez supprimer,donc on dirait qu'ils servaient pas à grand chose.
    C'est une autre façon de faire permettant de remplacer une partie d'une ligne par quelque chose d'autre.

  14. #14
    Membre actif
    Inscrit en
    juin 2005
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 494
    Points : 202
    Points
    202
    Par défaut
    Ah ok,merci infiniment?et ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Saut de ligne fichier texte depuis un JTextArea
    Par jeanjean6 dans le forum IO
    Réponses: 6
    Dernier message: 23/05/2010, 02h08
  2. Suppression ligne fichier txt
    Par daryus dans le forum IO
    Réponses: 5
    Dernier message: 20/07/2009, 16h47
  3. Problème EndofStream (ligne fichier texte)
    Par dada4444 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/06/2009, 12h39
  4. [Débutant] Dernière ligne fichier texte
    Par modaffar dans le forum MATLAB
    Réponses: 14
    Dernier message: 11/03/2008, 16h57
  5. [VBA-E] Derniere ligne fichier texte
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 72
    Dernier message: 13/04/2006, 13h07

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