J’ai une alternative au cryptage des données lors de la sauvegarde dans un fichiers : pourquoi ne pas utiliser la fonction fwrite et fread de la bibliothèque standard en language C ? Ca prend moins de temps que de :
Décrypter le fichier pour le lire
Le re-crypter pour le protéger des modifications
Le re-décripter pour écrire dedans
4 . Le re-crypter pour le protéger un fois de plus des modifications
Euh, ça ne permet pas juste de lire ou écrire un fichier? (et donc, c’est pas ce que GD utilise déja?)
T’es marrant avec tes histoires de binaires XD
Dans un ordi tout est en binaire. (même un fichier texte a la con c’est un fichier binaire… )
Perso, je trouve que crypter c’est assez chiant, je m’amuse plus avec ça… (ou bien je sauve en ligne, mais pas besoin de crypter…)
Par contre, lire et écrire des fichiers textes “normaux” (pas xml) ça serait bien
(Lire une ligne, déplacer le curseur, ou lire tout le fichier, écraser une ligne…c’est pratique )
Il veut dire qu’il veut qu’on puisse écrire des fichiers contenant du binaire pur, pas un truc qui est converti en txt ou autre, du binaire. Et c’est un truc qui serait fort utile.
Hé bien tu utilises des structures contenant les données à sauvegarder. Le développeur pourra ajouter (ou retirer mais on peut l’exclure) des variables à sa structure puis pourra choisir de la sauvegarder dans le fichier de son choix. Bien sûr, cette structure ne pourra pas contenir de pointeur, puisque l’adresse de la variable changera lors d’un nouveau lancement du programme. Par exemple, les données de sauvegarde seront ajoutées comme ça :
struct MaStuctureDeSauvegarde
{
int maVariable1;
int maVariable2;
int autreVariable;
};
et dans la fonction sauvegarde :
File *fichier = fopen("monFichier.monExtension", "wb"); // b pour binaire
fwrite(&MaStructureDeSauvegarde, tailleEnOctets, nombreEléments, fichier); // Renvoie le nombre d'éléments écrits avec succés
fclose(fichier);
Bon après on peut aussi utiliser des tableaux dynamiques (vector par exemple) mais ça c’est pas moi qui décide
En tout cas ça serait une bonne parade pour éviter le cryptage / décryptage. En revanche, la portabilité n’est pas assurée : sur mon ordinateur, un int prend 4 octets en mémoire. Je doute que sur le votre, il prenne forcément la même taille en mémoire. Pour plus d’infos, allez sur http://www.siteduzero.com/tutoriel-3-313530-lecture-et-ecriture-de-fichiers-en-mode-binaire.html.
Tiens par exemple, tu peux ajouter une fonctionnalité “instance de sauvegarde” qui permet d’ajouter ou de retirer certains éléments dans une liste de variables. J’ai dit tout ce que j’avais à dire à ce sujet. C’est comme tu le vois une possibilité intéressante.
Rien ne t’oblige à mettre des nombres trop important, après c’est au dev de s’adapter, si il peut pas il reste avec le XML.
Puis bon, les entiers sont permettent quand même des nombres immensément grand, qui ne seront quasiment jamais utilisés dans les jeux (4 octets c’est juste énorme) donc il n’y a aucun problème.