Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
Menu
Calculatrices
Graph 35 à 100
Graph 25+Pro/25+E/25+E II
Graph 35+USB/75(+E)/85/95 SD
Graph 100(+)
Classpad 300/330(+)
fx-CG 10/20 (Prizm)
Classpad 400(+E)
Graph 90+E
fx-92+ SC
Liens
¤ Transférer un programme sur
sa calculatrice

¤ Vous cherchez une fonction ?
Utilitaires >> Graph 35+USB/75(+E)/85/95 SD >> Add-ins >> Memory
Memory
Version : 3.0 Taille : 10917 octets Ajouté le : 2014-02-14 08:13 Modifié le : 2020-08-24 11:17
Auteur et posteur :
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Planète Casio - Add-in Casio - Memory - LePhenixNoir - Calculatrices
Nombre de visites sur cette page : 17514
Score au progrank : 41
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
2526 téléchargements | Soumettre un test

Ce programme est sous licence Creative Commons 2.0 BY


A cause du changement de processeur des nouvelles Graph 35+ USB, 75 et 95 SD, de nombreux addins sont incompatibles avec ces calculatrices.
Rendre un addin compatible - Plus d'informations sur ce problème - Liste des addins compatibles

Description :

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)


Commentaires :

Pages: Précédente | 1, 2, 3, 4, 5, 6, 7, 8, 9 | Suivante

LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 09-03-2015 à 19:28 | #
Non, elle échoue quand le fichier existe déjà, pas si tu viens de le créer.
DodormeurHors ligneAncien rédacteurPoints: 3965 Défis: 84 Message
Posté le 09-03-2015 à 21:32 | #
fxlib a écrit :
Mais dans la mémoire de stockage, si on fait plusieurs appels à Bfile_WriteFile() consécutifs, seul le premier aura une action. Si le fichier existe déjà et qu'on essaye de surécrire, ça donne des caractères inattendus


Perso, de ce que je comprends, pour n'importe quel fichier plusieurs appel a write_file buge, et si le fichier existe déjà il y a des caractère inattendu.
Donc si on vient de le créer, il y a quand même des problème d'écriture (enfin il me semble)
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 09-03-2015 à 21:37 | #
Oui enfin je l'ai déjà utilisé, et sans problème.
DodormeurHors ligneAncien rédacteurPoints: 3965 Défis: 84 Message
Posté le 09-03-2015 à 21:44 | #
Ah bon ok Ça doit être la doc qui n'est plus a jour, ou peut-être qu'ils ont corrigé ça sur les SH4
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 02-12-2018 à 22:33 | #
Bonsoir.
Désolé pour ce qui me semble être, au-delà du simple déterrage, de la nécromancie pure et simple, mais quand j'essaye d'utiliser memory_load comme suit :
unsigned char *map = memory_load("\\\\fls0\\last_map");

le compilateur me balance l'erreur : C2129 (E) Illegal initializer type
Alors que, a priori, l'utilisation que j'en fait est exactement la même que dans le tutoriel de la documentation.
Si quelqu'un a une piste à me proposer quant à cette erreur, je suis preneur.

De plus, j'ai une erreur bonus : C2133 (E) Multiple parameter declarations, à la 22ième ligne de memory.h (déclaration de memory_char2font())

PS : Je code sur le vieux SDK de casio tout miteux
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 02-12-2018 à 22:42 | #
Est-ce que tu aurais, par hasard, écrit cette ligne en-dehors d'une fonction ?

On ne peut exécuter du code que dans une fonction. Tu as le droit d'initialiser hors d'une fonction avec des valeurs constantes, mais pas plus.

Pour la seconde erreur, je donne ma langue au chat. Résouds d'abord la première, si elle persiste je veux bien voir ton code.
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 02-12-2018 à 22:47 | #
En l'occurrence, le code complet de la fonction dans laquelle j'utilise la fonction est :
int launch_Save(){

    unsigned char *map = memory_load("\\\\fls0\\last_map");
    unsigned int *val = memory_load("\\\\fls0\\last_time");

    gamePlay(val[0], val[1], 0, val[3], map);

    free(map);
    free(val);}

C'est comme si le compilateur refusait que je puisse initialiser mes pointeurs avec memory_load(). Ce problème m'interroge d'autant plus que j'avais déjà utilisé cette bibliothèque sans problème par le passé.
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 02-12-2018 à 22:59 | #
Je suppose que tu ne peux tenter que divers contournements comme déclarer puis initialiser, vérifier l'inclusion de l'en-tête et peut-être la présence de symboles en double ? Tout cela est parfaitement valide avec GCC (à condition que le reste du code ne contiennt pas d'erreur), il faut donc jouer avec les limites du compilateur C89 du SDK.
PontilevienHors ligneMembrePoints: 88 Défis: 0 Message
Posté le 02-12-2018 à 23:15 | #
Mouais. Le coup de déclarer puis initialiser me donne un : C2222 (E) Type not compatible for "=", ce qui est parfaitement absurde puisque j'utilise cette méthode dans mon vieux projet qui compile toujours aussi bien.

Tout ceci me convainc un peu plus de combattre ma flemme et d'envisager de coder sous linux avec gcc. Ce SDK avec ses erreurs absurdes qui sortent des tréfonds de l'infini me court de plus en plus sur le système nerveux
LephenixnoirHors ligneAdministrateurPoints: 24574 Défis: 170 Message
Posté le 03-12-2018 à 08:25 | #
Quelque chose me dit que tu n'as pas inclus correctement le header ?

Pages: Précédente | 1, 2, 3, 4, 5, 6, 7, 8, 9 | Suivante

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 259 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

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