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

Entrée/Sortie Java Discussion :

Recherche dans un fichier et modification


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut Recherche dans un fichier et modification
    Salut

    J'ai une petite question, surement pas très compliquée mais qui me pose pour l'instant problème :

    J'ai un fichier, et j'ai besoin de chercher les occurences d'une chaine de caractères dedans, et de rajouter quelque chose après cette chaine.

    Pour l'instant je fais déjà une copie du fichier à l'aide d'un buffer byte[] et de FileInputStream et output, mais je sais pas trop si entre temps je peux manipuler le buffer de bytes pour faire ce que je veux...

    Une idée lumineuse pour me débloquer ?

    Merci d'avance

  2. #2
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Si le fichier est petit, tu pourrais mettre son contenu dans un StringBuffer et de manipuler le String résultant.

    Tu peux sinon utiliser des buffer et lire X caractères et y appliquer ton recherche / ajout et vider ce buffer dans un fichier temporaire. Il faut penser à gérer les bornes des buffer dans le sens où il est tout à fait possible que ta chaine commence à la fin du buffer et se terminera au début du buffer suivant...
    Que la Schtuche soit avec vous !!!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Oui après avoir posté ce message j'ai regardé un peu ce que je pouvais faire une fois transformé en string :

    je peux utiliser indexOf pour avoir l'occurence que je veux, mais mon problème c'est l'ajout de mon morceau : je peux pas faire un replaceAll parce qu'en fait je cherche un nom de table sql, et je dois ensuite trouver le prochain where à partir de ce nom de table pour y rajouter une condition. Le replaceAll est donc pas viable, mais le replaceFirst me permet pas non plus de choisir l'index de départ pour chercher la première occurence...

    Au pire je pourrais couper le string dès que je trouve une occurence, et faire un replaceFirst dessus, mais c un peu crade...

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    Des que tu souhaites faire en java des modifications sur un fichier, tu dois lire ton fichier, et le réécrire entièrement... La seule question a te poser c'est comment l'optimiser...

    Sinon, a partir du moment ou tu as ton buffer de byte[], tu peux le manipuler comme tu le souhaites... Il n'y a pas trop de probleme la dessus... ton fichier de départ ne sera pas touché, si c'etait ta question...

    Sinon, montre un peu ton code, et dis nous precisement ou ca te gene...

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 220
    Points : 266
    Points
    266
    Par défaut
    je peux utiliser indexOf pour avoir l'occurence que je veux, mais mon problème c'est l'ajout de mon morceau : je peux pas faire un replaceAll parce qu'en fait je cherche un nom de table sql, et je dois ensuite trouver le prochain where à partir de ce nom de table pour y rajouter une condition.
    Tu ne peux pas appliquer en java simplement ce que tu dis ?

    Tu fais une jolie boucle en lecture, genre tant que tu as des données tu boucles, tu prends un buffer de byte[] (voir meme de String) que tu remplis / vide au fur et a mesure de ta lecture / Ecriture, et tu fais ta recherche de ta chaine correspondant a ton nom de table, (avec un indexOf, par exemple), tu recuperes l'indice, et tu recherche a partir de la la premiere occurence de ton where... Tu ecris en sortie tes données jusqu'à cet indice, tu rajoutes ta modification, et tu continues ta boucle...

    Ca pourrait pas marcher ?

    ceci dit, comme l'a précisé Oui-Oui MB, attention a tes ruptures, au niveau de ton buffer....

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    j'essaye ma solution de bourrin (ce prog est pas destiné à être réutilisé ^^), et si je m'en sors pas, je vous colle ce qui me gêne

    Merci

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    C'est bon je m'en suis sorti avec ma méthode

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

Discussions similaires

  1. Améliorer la recherche dans un fichier?
    Par abdmaa dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 09/05/2005, 13h09
  2. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 22h51
  3. Rechercher dans un fichier avec emacs
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/11/2004, 10h28
  4. recherche dans un fichier xml (castor)
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 06/09/2004, 14h28
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

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