ARCHIVES


Librairie
[SRC] ConfLib 1.00b
Taille du fichier : 72.815 Ko
Nombre de téléchargements : 18427
Nombre de vues : 37752
Description rapide : Lib kernel de gestion de fichiers de conf
Auteur de l'archive : Flanker
Calculatrices concernées : TI-89 TI-92+ TI-V200 TI-89Ti
Hardware concernés : HW1 HW2 HW3
ROMs (AMS) supportés : AMS1.00~1.05 AMS2.01~2.05 AMS2.07~2.09 AMS3.00~3.10 PedroM
Langage de programmation utilisé : ASM Kernel
Description Complète : Nom du programme : ConfLib 1.00b1 (Bêta publique)

Auteur : Flanker (Matthieu Gallet)
Date : 11/07/2004
Mail : matthieu_gallet at yahoo.fr
Type : Bibliothèque de fonctions dynamique pour programmes kernel
Calculatrices : TI-89, TI-92Plus, Voyage 200 (toutes versions logicielles et matérielles, avec PreOS 0.71 ou supérieur)

ConfLib set une bibliothèque qui permet de gérer des fichiers de configuration simples : vous pouvez facilement insérer ou récupérer des
entiers (sur 32bits) ou des chaînes de caractères dans un texte donné.


**** 5 fonctions sont disponibles pour l'instant ****

en voici les prototypes C
long value = conflib::get_num_key(const char *file, const char *section, const char *key, long default, const short *error)
short error = conflib::add_num_key(const char *file, const char *section, const char *key, long value)
short error = conflib::remove_key(const char *file, const char *section, const char *key)
short error = conflib::get_string_key(const char *file, const char *section, const char *key, const char *value, long max_length, const char *default)
short error = conflib::add_string_key(const char *file, const char *section, const char *key, const char *value)

Les différentes valeurs possibles pour error sont explicites :
CONFLIB_OK equ 0
CONFLIB_FILE_NOT_FOUND equ 1
CONFLIB_KEY_NOT_FOUND equ 2
CONFLIB_INVALID_KEY equ 3
CONFLIB_UNSAVED_FILE equ 4
CONFLIB_UNARCHIVED_FILE equ 5
CONFLIB_CANT_CREATE_FILE equ 6
CONFLIB_SECTION_NOT_FOUND equ 7


file est un fichier TEXT (créé ou modifié avec l'éditeur intégré) qui doit être placé dans le répertoire SYSTEM du kernel (par défaut c'est le répertoire 'main')
Si le fichier existe déjà et que ce n'est pas un texte, Conflib renverra CONFLIB_FILE_NOT_FOUND.
Si le fichier n'existe pas, Conflib essaiera de le créer.
Si Conflib écrit dans un fichier archivé, ce dernier sera réarchivé après l'écriture.

Dans le chemin donné en argument, il ne faut pas spécifier le répertoire
(i.e. il ne faut pas mettre conflib::get_num_key("folder\file", ... mais conflib::get_num_key("file", ...)

Je pourrais peut-êter changer ça (chercher dans le répertoire SYSTEM uniquement si le répertoire n'est pas spécifié)

Pour une description plus précise des fonctions, jetez donc un oeil aux fichiers .h (Conflib_asm et Conflib_C)

**** Note aux programmeurs en asm ****
Seul le registre d0 est modifié et contiendra le résultat renvoyé.
Les paramètres sont passés via la pile, comme les fonctions C traditionnelles.


**** Remerciements ****
Les membres de yAronet et de l'3l33t (plus spécialement Godzil, PpHd, Pollux, Squale, Spectras, Uther) pour leurs commentaires et leur aide.


**** Historique ****
15/10/2004 : début du codage
10/11/2004 : Première distribution publique


**** License ****

Je ne peux pas être tenu comme étant responsable d'aucun dommage occasionné par l'utilisation directe ou indirecte de Conflib
Vous n'êtes pas autoris&s à redistribuer tout ou partie de ce package sans mon autorisation
Le code source est fourni pour voter curiosité ou pour vous permettre de m'aider à améliorer le programme.
Merci de me demander avant d'en utiliser des parties dans vos programmes





**** Format of the text file ****
* comments are accepted : a line is a comment if it begins by a '#' character
* spaces are accepted in front of a key and around the '=' sign, but NOT at the end of a line
* strings are delimited by '"' characters
any valid variable name begins by _, a-z or A-Z and contains only characters among _, a-z, A-Z and 0-9. Its length is arbitrary.
any valid section name begins by _, a-z or A-Z and contains only characters among _, a-z, A-Z and 0-9 and its length is inferior or equal to 16 chars.

exemple of correct conf file :
-----------------------------------------------------------


#comment 1
key_1 = 45312
key_2= 545
key_4 =0121647
[section_1]
another_key = "string"
#another comment
[section_2]
key_1 = "Hello, world"
key_2 = "I'm Flanker"

conflib::get_num_key("file","section_1","another_key",12,&error) will return 12 and error = CONFLIB_INVALID_KEY
conflib::get_num_key("file","","key_1",12,&error) will return 45312 and error = CONFLIB_OK
conflib::get_string_key("file","section_2","key_1",*value,10,*default) will return CONFLIB_OK and value = "Hello, world"




-----------------------------------------------------------

examples of incorrect files :

(spaces after the key value)
-----------------------------------------------------------
key = 755545
-----------------------------------------------------------

(comment after a key)
-----------------------------------------------------------
key = 5451212#comment
-----------------------------------------------------------


("" character int he middle of a string)
-----------------------------------------------------------
key="strings"strings"
-----------------------------------------------------------
Archive mise en ligne par : Flanker
Date de mise en ligne : 10/11/2004 à 23:35:56

- Ti FR v3 - Ce site n'est pas le site officiel de texas instruments. En cas de problèmes techniques sur le site veuillez contacter l'administrateur. Merci de vos visites !
page générée en 26 ms