Forum Programmation.java Modifier fichier texte

Posté par  .
Étiquettes : aucune
0
9
avr.
2006
Bonjour à tous,

voilà j'ai un fichier texte que je met à jour régulièrement, dedans je mets combien de fois on trouve des mots dans certains fichier, et justement je dois mettre ce nombre à jour à chaque fois que je trouve le mot.

Pour illustrer voilà une ligne de mon fichier texte :

mot fichier 3 fichier2 5

donc ici on trouverais le mot "mot" 3 fois dans "fichier" et ainsi de suite.

Quand je retombe sur le mot je dois donc incrémenter ce nombre, mais comment sélectioner l'entier et ensuite le remplacer ?

Avec seek() je dois pouvoir bien me positionner mais je sais pas comment éditer le fichier :/
De plus avec writeChars() ça écris mais avec un espace entre chaque lettre, j'ai oublié quelque chose ?

Merci beaucoup pour vos idées, mais ne me proposez pas de réécrire le fichier svp :)
  • # mmap

    Posté par  (site web personnel) . Évalué à 2.

    Je penses que le plus simple ici est d'utiliesr mmap avec un tableau contenant l'addresse des différentes informations intéressantes
    Pour rappel mmap permet de mettre en mémoire (enfin accessible par un pointeur, ca peut etre directement sur le disque sans passer par la RAM) un fichier (en entier ou pas), par contre le probleme qu'il se pose c'est pour le nombre de mots, il faudrait que la chaine de caractere r epresentant ce nombre soit constant (donc remplir de 0 à gauche en somme)
    • [^] # Re: mmap

      Posté par  . Évalué à 1.

      Y'a mmap en Java ? ;)

      Je serais plutôt parti sur fscanf, ou équivalent.
      • [^] # Re: mmap

        Posté par  . Évalué à 1.

        je connais mmap mais ça ne m'interesse pas ici désolé :/

        Par contre fscanf y a en java ?
        Et sinon ces equivalents ça seraient quoi ?

        Merci en tout cas :)
      • [^] # Re: mmap

        Posté par  (site web personnel) . Évalué à 2.

        Merdedi, désolé je fais jamais gaffe dans quelle section est posté le message... (et c'est pas la 1° fois que je me fais avoir c'est ca le pire)
  • # C'est adapté ?

    Posté par  . Évalué à 2.

    Est-ce vraiment adapté d'utiliser un fichier pour une telle utilisation ? C'est une obligation, ou bien tu peux utiliser autre chose ? (par exemple une base de donnée, genre SQLite, ça se ferait plus simplement, non ?)

    Enfin, il doit y avoir une contrainte je suppose qui te fait choisir un fichier...
    • [^] # Re: C'est adapté ?

      Posté par  . Évalué à 2.

      et tant qu'on y est, une autre bête question : tu dit que tu doit mettre la ligne à jour à chaque fois que tu tombes sur le mot. Cela veut dire que tu lance plusieurs fois ton programme sur le même fichier ? (par exemple tu crée ton fichier aujourd'hui, tu regarde combien de fois tu as tata, demain tu édite ton fichier, et tu regarde denouveau combien de fois tu as tata)

      Ou bien tu lit seulement une fois ton fichier (tu as crée tes fichier il y a trois ans, et aujourd'hui, tu vas compter les occurences de tata, et le fichier original ne changera jamais) ?

      Parce que si c'est le second cas, le plus simple, c'est de compter toutes les occurences dans une variable, sans écrire le fichier, et de n'écrire ce fichier qu'à la fin de tout le traitement...
    • [^] # Re: C'est adapté ?

      Posté par  (site web personnel) . Évalué à 2.

      Alternativement je vois bien un objet (genre un HashTable ou un truc du genre, j'ai plus fait de Java depuis quelques temps) sérialisé. Après quand on veut une version lisible il suffit d'utiliser par exemple la méthode toString() qui aura été définie pour ça.

      Pas besoin de db, le fichier est facilement modifiable sans devoir parser et on a une version lisible facilement.

      pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.