Les ressources
Le langage B-Basic propose trois classes permettant d'utiliser des tables de données dans vos logiciels.
RESSOURCE Déclarer des ressources TAMPON Pointeur de ressources COLLECTER Extraction de ressources
1 - La classe RESSOURCE
La classe RESSOURCE, est une commande de déclaration. On peut insérer tout type de données dans les ressources sans ordres précis, des valeurs, des variables, des expressions mathématiques et des chaînes de caractères.
On pourra écrire..
RESSOURCE(123,43,"texte",v0$,variable*2,V1+1.....)
Vous pouvez insérer des ressources en n'importe qu'elle partie d'un groupe.
BLOC(1) ----- ----- Instructions ------ RESSOURCE(123,124,125,126,"Texte") RESSOURCE(124,125 ...) etc ... ------- ------- TERMINE(B)
Ou de préférence
BLOC(1) ----- ----- Instructions ----- etc ... ------- ------- TERMINE(B) ! RESSOURCE(123,124,125,126,"Texte") RESSOURCE(124,125 ...) ! BLOC(2) ----- TERMINE(B)
2 - La classe TAMPON
L'instruction TAMPON doit être considérée comme un pointeur de ressource. Vous disposez de 64 Mémoires. Cette fonction dispose de deux sous fonctions.
Pointe une zone de ressource
TAMPON(A,No mémoire,Groupe,No ressource) Liaison a un groupe TAMPON(D,No mémoire,No ressource) Ressource dans le groupe
Pointe sur un élément de ressource
TAMPON(B,Mem,Groupe,No ressource,No élément) Liaison a un groupe TAMPON(E,Mem,No ressource,No élément) Ressource du groupe
Réinitialisation pointeur
TAMPON(C,No memoire)
Une fois pointé, les ressources sont extraites pas l'instruction COLLECTER.
3 - La classe COLLECTER
L'instruction COLLECTER permettra l'extraction de ressources par paquet. On pourra écrire.
TAMPON(A,0,20,0) COLLECTER(A,No mem = 0,v1,v2,v3,v4,v0$, ....)
On pointe la mémoire 0 sur la première ressource dans le bloc 20. L'instruction COLLECTE(A, charge dans les variables les ressources et lorsque que la fin de ressource est atteinte reprend au début. (Voir tampon)
La fonction B de la classe collecter effectue une remise à 0 du pointeur avant extraction.
Exemple d'utilisation
1 TAMPON(D,0,1) 2 REPETE(I,1) 3 COLLECTER(A,0,V1$) 4 V1$(C,1,--,V1) 5 V2=0 6 SI(T,V1=0) 7 COMBO(B,0,V1$) 8 V2=1 9 SI(F) 10 REPETE(M,V2) 11 ! 12 ! Resources - No : 0 - 1 - 2 13 ! ----------------- 14 ! 15 RESSOURCE("*","BMP","JPG","GIF","PNG","--") 16 RESSOURCE("*","BMP","JPG","GIF","PNG","--") 17 RESSOURCE("*","BMP","JPG","GIF","PNG","--")
Explication du code
Ligne 1 Pointe la ressource No 1, en utilisant le pointeur 0. Ligne 2 Début d'itération Ligne 3 Collecter une ressource dans la variable V1$ Ligne 4 Teste si la chaine correspond a la séquence de fin de ressources -- (arbitraire) Ligne 5 Variable utilisé pour le compteur itératif, mis à 0 Ligne 6 Si la chaîne de texte n'est pas une fin de ressource Ligne 7 Ajoute la chaîne dans la liste déroulante Ligne 8 Variable utilisé pour le compteur itératif, mis à 1 Ligne 10 Si V2=0, fin d'itération Ligne 15 Ressource No 0 Ligne 16 Ressource No 1 Ligne 17 Ressource No 2
Autre solution
1 TAMPON(D,0,1) 2 COLLECTER(A,0,V2) 2 REPETE(I,V2) 3 COLLECTER(A,0,V1$) 4 COMBO(B,0,V1$) 5 REPETE(B) 6 ! 7 ! Ressources - No : 0 - 1 - 2 8 ! ----------------- 9 ! 10 RESSOURCE("*","BMP","JPG","GIF","PNG","--") 11 RESSOURCE(5,"*","BMP","JPG","GIF","PNG") 12 RESSOURCE("*","BMP","JPG","GIF","PNG","--")
Ou pourquoi pas ..
1 TAMPON(D,0,1) 3 COLLECTER(A,0,V1$,v2$,v3$,v4$,v5$) 4 COMBO(B,0,V1$) 4 COMBO(B,0,V2$) 4 COMBO(B,0,V3$) 4 COMBO(B,0,V4$) 4 COMBO(B,0,V5$) 6 ! 7 ! Ressources - No : 0 - 1 - 2 8 ! ----------------- 9 ! 10 RESSOURCE("*","BMP","JPG","GIF","PNG","--") 11 RESSOURCE("*","BMP","JPG","GIF","PNG") 12 RESSOURCE("*","BMP","JPG","GIF","PNG","--")
4 - La classe CHOIX
La classe CHOIX, propose 2 fonctions d'extraction, et 3 fonction de recherches.
Liste de texte CHOIX(A,num élément,Réception texte,Texte 1,Texte 2,var$,texte$....) Liste de valeur CHOIX(B,num element,Reception valeur,1,2,3,1+23,V1+1 ....) Recherche résultat CHOIX(C,Mode,Valeur,Reception valeur,1,2,3,4,5,...) Recherche No élément CHOIX(D,Mode,Valeur,Réception valeur,1,2,3,4,5,...) Valeur au hasard CHOIX(E,Réception valeur,1,2,3,4,5)
Exemple de code ..
BLOC(1) ----- ----- Instructions ----- V1=1+1 CHOIX(A,V1,V1$,Premier,Deuxième,Troisième) MESSAGE(A,v1$) ------- ------- TERMINE(B)
Ou
BLOC(1) ----- ----- Instructions ----- CHOIX(A,(V1+V2)*2,V1$,Premier,Deuxieme,Troisième) MESSAGE(A,v1$) ------- TERMINE(B)
La classe choix a pour but de vous offrir une fonctionnalité apte à simplifier votre effort de programmation. Une idée d'utilisation peut être de combiner les capacités de tableau volatiles a codes barres et une liste.
Exemple ..
CHOIX(A,Num élément,Variable texte en réception,Texte1|Texte2|Texte 3,Texte1|Texte2|Texte 3,.etc.) etc jusqu'a 32 éléments