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 :

Problème suppression de ligne


Sujet :

Java

  1. #1
    Membre régulier
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Points : 77
    Points
    77
    Par défaut Problème suppression de ligne
    J'ai déjà effectué un post mais je viens de m'apercevoir d'un problème. Je souhaite supprimer une lgine d'un fichier .txt dont la structure est la suivante :

    aure:coucou
    sale:moche
    ando:rantosan
    gilles:taitonas

    Sauf que quand je fais appel à ma méthode voici la modification que cela apporte à mon fichier .txt :

    aure:coucousale:mocheando:rantosangilles:taitonas

    Comme vous pouvez le voir cela ne supprime pas un élément mais tout simplement le saut.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Bonjour,

    Si je regarde ton post précédent il me semble que c'est ta ligne suivante qui n'est pas bonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sb.append(line + "\n");
    Tu as l'air sur Windows, et un retour chariot sur Windows n'est pas "\n" (c'est le retour chariot Unix). Sous windows c'est un "\r\n". Utilise la variable System.getProperty("line.separator") pour toujours avoir le bon saut de ligne quelque soit ta plateforme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class Test {
        private static final String RETOUR_LIGNE = System.getProperty("line.separator");
        ...
        public static boolean supprimer(String fileName, int lineNumber) {
            ...
            if (nbLinesRead != lineNumber) {
                sb.append(line).append(RETOUR_LIGNE);
            }
            ...
        }
    }
    Romain.

  3. #3
    Membre régulier
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Points : 77
    Points
    77
    Par défaut
    Merci beaucoup romain pour ton aide. Effectivement c'était bien ça le problème. J'avais isolé cette ligne car je voyais bien que le problème venait de là sauf que je n'arrivais vraiment pas à savoir pourquoi.
    Tu pourrai m'aider sur un problème similaire ?
    Donc maintenant que j'arrive à supprimer une ligne d'un fichier .txt en entrant le numéro de ligne à supprimer. J'aimerai pouvoir supprimer une ligne suite à ce que l'utilisateur rentre dans la console. Par exemple ma console fait :
    "Veuillez saisir l'id à supprimer :" "H01"

    Le fichier .txt est structuré de la manière suivante :
    H01:aure:kol
    H02:brives:lagaillarde

    Je pense à utiliser le Tokenizer

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Tu peux faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!line.startWith(id)){
         sb.append(line).append(RETOUR_LIGNE);
    }
    Pour lire une saisie clavier tu peux suivre cet exemple.

    Romain.

  5. #5
    Membre régulier
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Points : 77
    Points
    77
    Par défaut
    Effectivement ça marche bien. Mais tu en penses quoi d'utiliser un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringTokenizer st = new StringTokenizer(ligne);
    ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    StringTokenizer est une classe maintenue dans le JDK par souci de rétro-compatibilité. La javadoc recommande d'utiliser la fonction split à la place :
    StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
    Tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String[] cellules = line.split(":");
    if(!cellules[0].equals(id)){
         sb.append(line).append(RETOUR_LIGNE);
    }
    A toi de voir la méthode que tu préfères. Avec le startWith l'utilisateur peut saisir "H01" ou "H01:a" ou "H01:aure"... Alors qu'avec la version split ça sera plus strict il devra saisir "H01".

    Romain.

  7. #7
    Membre régulier
    Homme Profil pro
    Informatique
    Inscrit en
    Mai 2011
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 133
    Points : 77
    Points
    77
    Par défaut
    D'accord. En tout cas je te remercie de ton aide !!

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

Discussions similaires

  1. Problème Suppression de ligne dans DataBase
    Par kabil.cpp dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/09/2009, 10h08
  2. Problème de taille après suppression de lignes dans un recordset...
    Par nikko_54 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/04/2006, 22h18
  3. [Excel & D7]Problème de suppression de lignes
    Par Isa31 dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 14/03/2006, 09h00
  4. Problème de suppression de ligne dans ma base !
    Par gregman dans le forum ASP
    Réponses: 2
    Dernier message: 21/05/2005, 08h14
  5. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27

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