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

Servlets/JSP Java Discussion :

Suppression de ligne dans un fichier txt


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut Suppression de ligne dans un fichier txt
    Bonjour,

    Je suis en train de concevoir une servlet qui gère un collecton de livres dans un fichier txt.

    Et mon problème vient lorsque je souhaites supprimer des enregistrements dejà écris dans le fichier txt. J'ai écris un programme qui cherche le livre a modifier dans le fichier txt, cela fonctionne et me renvoit le numéro de la ligne en question. Ca c'est niquel mais je ne sais pas comment faire pour supprimer les lignes en question après.

    Quelqu'au aurait une idée ?

    merci d'avance

    Charlie

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    y a pas de miracle, faut réécrire tout le fichier.

  3. #3
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Merci de ta réponse.

    Donc il faudrait copier toutes les lignes dont j'ai besoin dans un autre fichier. Supprimer l'ancien fichier et renommer le nouveau fichier avec le nom de l'ancien ? Tout cela est possible ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ben oui c'est possible

  5. #5
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Je suis en train d'essayer tout cela. Si je bloque, je repasserais.

  6. #6
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    En fait, j'ai quelque soucis.

    Déjà, le premier est que dans mon fichier txt où les livres sont enregistrés possède des saut de lignes entre chaque enregistrements. Donc en fait le numéro de la ligne que je reçoit avec ma variable i n'est pas bon. Et je ne sais pas comment faire pour prendre en compte ces sauts de lignes.

    voici un exemple d'enregistrement dans mon fichier txt :

    Titre : gregr
    Isbn : fregfd
    Auteur : gfdqgfdq
    Année : 235
    Nombre de pages : 346
    Prix : 356


    Titre : test
    Isbn : ghtraehta
    Auteur : htezhtz
    Année : 15641
    Nombre de pages : 247637
    Prix : 235652

    PS: le programme doit supprimer un enregistrement de livre donc 6 lignes plus un espace.

    Le deuxième soucis est que je ne sais pas comment dire aux flux d'écriture de ne prendre que les lignes que je souhaite. J'ai essayé avec une boucle for() mais sans résultats.

    Voici mon programme qui fonctionne avec un compte du nombre de lignes erroné pour la recherche du titre du livre et qui copie l'ensemble 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    boolean result = false;
            int j=0;
     
         try
           {
     
           lecteurAvecBuffer = new BufferedReader(new FileReader("collection_livres.txt"));
     
           int i = 1; //initialisation du numero de ligne
     
           while ((line = lecteurAvecBuffer.readLine()) != null)
           {
             if ( line.indexOf(recherche) != -1)
             {
            	 out.println("La recherche que vous avez effectuée a été trouvée à la ligne " + i + " du fichier de votre collection de livres");
            	 result = true;
             }
             i++;
             i=j;
           }
     
           lecteurAvecBuffer.close();
     
           }
     
         catch(FileNotFoundException exc) { System.out.println("File not found" );  }
         catch(IOException ioe) { System.out.println("Erreur IO" ); }
     
         if(result == false)
         {
        	 out.println("La recherche que vous avez effectuée n'a pas été trouvée dans le fichier de votre collection de livres");
         }
     
         int i;
    		try{
    			//création des flux
    			BufferedInputStream entree=new BufferedInputStream(new FileInputStream("collection_livres.txt"));
    			try{
    				BufferedOutputStream sortie=new BufferedOutputStream(new FileOutputStream("copie_collection_livres.txt"));
    				//copie du fichier
    				try{
    					while((i=entree.read())!=-1) {
    						sortie.write(i);
    					}
    					//forcer l'ecriture du contenu du tampon dans le fichier
    					sortie.flush();
    				}finally{
    					//fermeture de sortie
    					sortie.close();
    				}
    			}
    			finally{	
    				//fermeture de entree
    				entree.close();
    			}
    		}
    		catch(IOException e){System.out.println(e);
    		}

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

Discussions similaires

  1. Suppression d'une ligne dans un fichier .txt
    Par hamidou sow dans le forum C++
    Réponses: 9
    Dernier message: 24/04/2014, 22h43
  2. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 17h58
  3. nbr de lignes dans un fichier txt
    Par ibtisss dans le forum Langage
    Réponses: 3
    Dernier message: 04/11/2005, 15h09
  4. Suppression de lignes dans un fichier sous dos
    Par ducho dans le forum Windows
    Réponses: 2
    Dernier message: 16/05/2005, 10h20
  5. Suppression de lignes dans un fichier
    Par bubu dans le forum Linux
    Réponses: 2
    Dernier message: 13/01/2005, 10h36

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