Attention : cette antiquité n'est compatible qu'avec le fx-9860G SDK et n'est plus maintenue depuis 2015.
La bibliothèque C memory simplifie la manipulation de la mémoire. Elle permet entre autres d'utiliser des interfaces utilisateur, de charger et sauvegarder les fichiers automatiquement, d'utiliser des char * pour les adresses, tout en se passant de Bfile.
Une documentation en HTML est jointe à l'archive, très complète depuis la version 3. Celle-ci comprend quelques explications sur la mémoire, la liste des fonctions de memory et un court tutoriel pour l'utilisation de cette dernière.
N'oubliez pas d'inclure memory.h au début de votre programme et d'ajouter memory.c au projet.
Cette bibliothèque génère un code nativement compatible SH4.
Pour ceux qui utilisent encore les versions 1.1 ou 2, je les laisse dans les fichiers (données perdues...).
Fichiers
1. memory.zip : version 3.0
2. memory.zip : version 2.0
3. memory.zip : version 1.1
Les archives contiennent la source, le header, et la documentation HTML.
Changelog
Cliquer pour enrouler
13.06.2014
Ajout de la documentation de la version 3.
11.06.2014 -- Version 3.0
Compression de la transformation de l'adresse char * en FONTCHARACTER.
Ajout de l'affichage des erreurs et causes pour les développeurs.
29.05.2014
Correction de bugs détectés au niveau de l'allocation, qui généraient parfois une adresse FONTCHARACTER fausse et provoquaient systématiquement une erreur.
24.05.2014 -- Version 2.0
Ajout des fonctions d'interfacage et des fonctions automatisées.
Définition par define des fonctions basiques.
15.03.2014 -- Version 1.1
Ajouté un header à la bibliothèque.
La fonction memory_seekfile() (alias de Bfile_SeekFile) a été ajoutée.
Les doubles inclusions de headers sont évitées.
01.03.2014
Quelques bugs corrigé (inclusions de headers)
Je vais avoir besoin de cette lib pour la première fois, c'est d'ailleurs ma première expérience avec la mémoire, en tout cas bravo cette lib parait vraiment complète !
Du coup j'ai une question, j'ai lu toute la doc mais je voudrais avoir une confirmation
On ne peut écrire dans la mémoire que des char ?
Ou est-ce que on peut ecrire une class complète et la recharger d'un coup ?
Dis-moi si tu rencontres des bugs, de ce que j'entends il y en a pas mal mais on ne me les signale jamais correctement donc impossible de les corriger...
void* jour = NULL;
jour = memory_load("\\\\fls0\\AOE.save");
if (jour != NULL)
{
game_map.jour = (int)(*jour); // ben oui, tu veux pas la valeur de l'adresse du pointeur, mais la valeur à l'adresse :p
delete(jour);
scene = SCENE_MAP;
}
Visiblement tu sauvegardes des données qui sont dans une structure ?
Pour réduire les temps de sauvegarde et chargement, et pour simplifier les programmes, je conseille toujours de faire ceci :
struct Save
{
int currentMap;
unsigned x, y;
char playerName[8];
};
struct Save save; // en local c'est pas mal aussi
save:
memory_save("game.sav",&save,sizeof(save));
load:
struct Save *file = (struct Save *)memory_load("game.sav");
if(!file) { /* ... */ }
memcpy(&save,file,sizeof(save));
free(file);
Si j'ai bien compris, ca devrait m'afficher le nom des fichiers qui se trouve dans la memoire de la carte SD dans le dossier ALGO et d'extension ALG ?
Et ce code me mene a mon deuxieme point:
Ton char files[10][10] et un peu court, pour mettre un nom de fichier. Ça risque de déborder et de faire le bordel. Dans les exemples je conseillais char files[nb_fichiers][20].
Sinon, en fait le linker te dit juste qu'il ne trouve pas la fonction memory_find. >_<
T'as bien pensé à ajouter memory.c au projet ? Et à utiliser une version compatible avec la fonction ?
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd