Effacer une ligne dans un .txt en C++ ?
Fermé
JojoLapin
-
18 nov. 2007 à 14:37
mamiemando Messages postés 32775 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2023 - 19 nov. 2007 à 00:56
mamiemando Messages postés 32775 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2023 - 19 nov. 2007 à 00:56
A voir également:
- Effacer une ligne dans un .txt en C++ ?
- Vente en ligne particulier - Guide
- Aller à la ligne dans une cellule excel - Guide
- Partage de photos en ligne - Guide
- Apparaitre hors ligne instagram - Guide
- Effacer tout l'historique - Guide
1 réponse
mamiemando
Messages postés
32775
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
28 novembre 2023
7 684
19 nov. 2007 à 00:56
19 nov. 2007 à 00:56
Je ne pense pas que ça existe. De manière générale c'est une mauvaise mémoire de stocker de l'information dans un fichier si c'est au cours du programme car un accès fichier est une opération lente. Il vaut donc mieux stocker l'information en mémoire. Elle sera d'ailleurs beaucoup plus simple à manipuler.
En particulier pour ce que tu fais, il existe en C++ une structure idéale : les std::map. Ici la clé de ta map sera un std::string (le nom du joueur) et la data un unsigned (son score).
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Les map permettent de chercher très facilement une clé (ou d'en vérifier l'existence), donc c'est exactement ce que tu veux faire. Voici ce que je te propose :
- tu charges un fichier au lancement du jeu ou quand tu charges une partie (dans une map),
- tu écris la map dans un fichier quand tu sauves une partie ou que tu quittes le jeu.
En pratique le fichier est donc lu/écrit complètement. Si cette solution te convient je peux te détailler la méthode.
La méthode est pénalisante si le le fichier de data est vraiment énorme (il est donc long à parser et à convertir sous forme de map, donc à mettre en mémoire). Ce n'est pas le cas ici donc ce n'est pas gênant. Pour anecdote, quand des structures de données sont énormes (genre plusieurs mégas en mémoire), on stocke des fichiers binaires (appelés fichier sérialisés) qui peuvent être chargés directement en mémoire. Tu n'en auras pas besoin dans ton cas mais si tu veux voir juste par curiosité à quoi ça ressemble :
https://www.boost.org/doc/libs/1_72_0/libs/serialization/doc/serialization.html
Rq : L'extension du fichier n'a aucune importance en soit, tu peux mettre un .dat un .txt ou .plop à la fin, ça n'a aucun impact.
Bonne chance
En particulier pour ce que tu fais, il existe en C++ une structure idéale : les std::map. Ici la clé de ta map sera un std::string (le nom du joueur) et la data un unsigned (son score).
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583
Les map permettent de chercher très facilement une clé (ou d'en vérifier l'existence), donc c'est exactement ce que tu veux faire. Voici ce que je te propose :
- tu charges un fichier au lancement du jeu ou quand tu charges une partie (dans une map),
- tu écris la map dans un fichier quand tu sauves une partie ou que tu quittes le jeu.
En pratique le fichier est donc lu/écrit complètement. Si cette solution te convient je peux te détailler la méthode.
La méthode est pénalisante si le le fichier de data est vraiment énorme (il est donc long à parser et à convertir sous forme de map, donc à mettre en mémoire). Ce n'est pas le cas ici donc ce n'est pas gênant. Pour anecdote, quand des structures de données sont énormes (genre plusieurs mégas en mémoire), on stocke des fichiers binaires (appelés fichier sérialisés) qui peuvent être chargés directement en mémoire. Tu n'en auras pas besoin dans ton cas mais si tu veux voir juste par curiosité à quoi ça ressemble :
https://www.boost.org/doc/libs/1_72_0/libs/serialization/doc/serialization.html
Rq : L'extension du fichier n'a aucune importance en soit, tu peux mettre un .dat un .txt ou .plop à la fin, ça n'a aucun impact.
Bonne chance