JeuWeb - Crée ton jeu par navigateur
[Résolu] Edition et suppression dans un fichier texte - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu] Edition et suppression dans un fichier texte (/showthread.php?tid=2453)

Pages : 1 2


[Résolu] Edition et suppression dans un fichier texte - Eluox - 21-02-2008

Salut a tous, j'viens vous poser une petite question, j'ai pas mal réfléchis et je vois pas trop comment faire Confused

J'ai des données enregistré dans un fichier texte, sous ce format
Citation : /§/ Titre Note 1 /²/ Contenu Note 1<br /> /²/ 1203592468 /§/ Note 2 /²/ Contenu Note 2 /²/ 1203592478


/§/ Délimitant chaque nouvelle news et le titre,
/²/ Délimitant le contenu et ensuite la date du la note.

Je voudrais maintenant créer un système pour supprimer une partie de la ligne plus haut, égallemment éditer une partie, et je ne vois pas trop comment faire sans devoir faire éditer toutes les news a l'user


RE: Edition et suppression dans un fichier texte - Roworll - 21-02-2008

Ouch.
Clairement un format en BDD, XML ou YAML aurait plus adapté.

Pour extraire le contenu, tu peux parser avec des expressions régulières.
Par contre, pour reconstituer tout ça...

Autre solution, si tu tiens à garder un système de fichier avec ce format, pourquoi ne pas faire tout simplement un fichier par news ?


RE: Edition et suppression dans un fichier texte - Wells - 21-02-2008

Il te faut récupérer toute ton document dans une variable php. (je pense que tu sais lire dans un fichier)

Ensuite tu découpe cette variable via un explode.
Ensuite tu parcours le tableau nouvellement créer:

1) tu concatène dans une nouvelle variable toutes les news qui ne sont pas celle qu'il te faut éditer
2) lorsque tu tombe sur la news a éditer, au lieu de la concaténer avec le reste tu concatène le texte modifié.

Une fois le parcours terminé tu efface le contenu du fichier et tu y injecte ta nouvelle variable.

Pour la suppression c'est la même chose sauf que lorsque tu tombe sur la news a effacer tu l'as concatène pas du tout.


RE: Edition et suppression dans un fichier texte - Eluox - 21-02-2008

Roworll a écrit :Ouch.
Clairement un format en BDD, XML ou YAML aurait plus adapté.

Pour extraire le contenu, tu peux parser avec des expressions régulières.
Par contre, pour reconstituer tout ça...

Autre solution, si tu tiens à garder un système de fichier avec ce format, pourquoi ne pas faire tout simplement un fichier par news ?

Je ne voulais pas de base de donnée, tout simplement pour économiser en ressource, étant donné que les fichier texte son très peu gourmand, et ce système étant un de mes points faibles, je souhaiter m'améliorer dans le domaine Wink

Wells, je vais voir si j'y arrive, merci a toi Wink
( a toi aussi roworll Wink )


RE: Edition et suppression dans un fichier texte - Galaan - 21-02-2008

Clairement, si tu peux passer en base de donnees c'est la meilleur solution. Quitte a potasser un peu. Dis-toi que ce n'est pas du temps perdu.

Sinon tu explose ton fichier dans un tableau php tu fais les modifs et tu reconstruit tout ton fichier.

Galaan


RE: Edition et suppression dans un fichier texte - Eluox - 23-03-2008

Le topic date, j'avais un peu oublié de faire ce système, et je vous avoue que j'y arrive pas Confused


RE: Edition et suppression dans un fichier texte - Sephi-Chan - 23-03-2008

Explique peut-être plus en détail ce que tu n'arrives pas à faire, sans ça on peut difficilement t'aider.

Mais sinon, je te conseille d'abandonner l'idée de faire ça en dehors du cadre didactique. Si tu veux vraiment utiliser des fichiers, utilises un format de données existant, comme XML ou JSON, pour lesquels il existe des parsers intégrés dans le noyau de PHP (PHP 5 pour XML (avec DOM ou SimpleXML) et PHP 5.2 pour JSON).

Avec JSON par exemple, tu peux stocker ce que tu veux dans un fichier (.txt si tu le souhaite), au format suivant :
Code :
{"news": {
    "new": {
        "id": "1",
        "titre": "News numéro 1",
        "auteur": "Boby",
        "contenu": "Contenu de la news numéro 1."
        "commentaires": [
            {"auteur": "Bob", "commentaire": "J'aime trop les pâtes !"},
            {"auteur": "Johnny Boy", "commentaire": "Moi aussi !"},
        ]
    }
}}

Que tu transforme en un bel objet (ou array, si tu le lui demande) avec json_decode().
Avoue que c'est moins bancal et bien plus simple. Heureusement qu'on n'a pas besoin de réinventer la roue à chaque fois, ce serait bien ennuyeux, des gens ont fait des choses pour nous qu'il convient d'utiliser. Smile


Sephi-Chan


RE: Edition et suppression dans un fichier texte - Eluox - 23-03-2008

Je verrai pour le JSON et XML plus tard Smile, mais merci,

Mon problème est sûrement simple a résoudre, je stocke mes infos sous la forme suivante :

Citation :/§/ Titre Note 1 /²/ Contenu Note 1<br /> /²/ 1203592468 /§/ Note 2 /²/ Contenu Note 2 /²/ 1203592478

Je fais ensuite mes explodes, mon for, afin d'aficher le titre et la date de la note 1, le contenu, le titre et la date de la note 2, son contenu,

Et a coté du titre de chaque note, il y a un bouton/lien qui me permet d'editer la news voulu,


Il faut donc que je recupere uniquement le contenu de la news voulu, et que je l'affiche dans un textearea, et lors de la modification, que sa modifie la note voulu uniquement


RE: Edition et suppression dans un fichier texte - Sephi-Chan - 23-03-2008

Et bien il faut que tu boucles à nouveau sur tout ton fichier et que tu compares son identifiant (ou dans ton cas son titre puisque tu n'as pas donné d'identifiant) à celui soumis.
Quand ça tombe juste, tu arrêtes la boucle (ça ne sert à rien de faire les 47 autres itérations si tu cherches à afficher la troisième, on en conclut donc qu'il vaut mieux stocker dans le sens descendant, puisqu'on a plus de chances de modifier une news récente qu'une vieille).

Il faut également mettre dans une variable ce qu'il y a avant la news que tu veux, puis ce qu'il y a après, pour ensuite pouvoir reconstruire.

Enfin bref, comme tu peux le voir, c'est une technique bien pourrie. Tu y perdras plus qu'autre chose à faire ça avec un fichier texte. C'est bien de savoir le faire mais ça s'arrête là. XML est le plus apte à faire si tu ne veux pas passer par une base de données (JSON non plus, n'est pas fait pour ça).


Sephi-Chan


RE: Edition et suppression dans un fichier texte - Eluox - 23-03-2008

Je vais essayer en php/txt

Le problème, c'est que moi en XML/JSON, je suis aussi fort que toi en Serbo-Croate ( je suppose xd )