fermez cette fenêtre pour revenir au site de microrun

Plan de la page :



Nouvelles listes mémoire



Nouvelles listes mémoire :

Présentation :

Les listes mémoire de Screener (fonctions zlistart / zlisitem) présentent deux inconvénients :

- Elles sont limitées à 32 Ko (64 Ko dans Bikini pour Abal 3 uniquement)
- La visibilité de la liste est limitée au zaskalpha correspondant (on ne peut pas ni modifier ni interroger dynamiquement ces listes).

C'est pourquoi nous avons introduit un nouveau système de listes mémoire.
Le fonctionnement est le suivant :

On crée une liste d'items en mémoire indépendament de toute saisie, et on l'associe à une saisie en une instruction.
De cette manière la liste peut être modifiée par l'utilisateur ou le programmeur (dans des boites de dialogue indépendantes)

Les limites sont les suivantes :
Taille d'un item = 8192.
Nombre d'items = 32767.
La limite de 32 Ko est ainsi repoussée à (8Ko x 32K = 256 Mo)

L'exemple EXBIKV19 illustre cette utilisation.























Ces listes sont associées à des fonctions d'ajout, d'insertion d'items, de modification d'itemps ou de suppression d'items.
On peut même retrier ces listes dynamiquement par la fonction zlist_sort.
Les listes mémoire peuvent être associées aux listes évoluées avec colonnes et tris sur colonnes.

Les fonctions sont les suivantes :

Tout d'abord zlist_create pour créer une liste (passer la longueur du record)
zlist_getnewlist pour obtenir un numéro de liste libre. Mais c'est optionnel, vous pouvez préciser un numéro.

Ensuite zlist_additem pour ajouter un record dans la liste.
Enfin zlist_browse, dans le traitement avant de la liste, pour associer cette liste en mémoire à la liste sur l'écran.

La fonction zlist_getitem permet d'obtenir les items constituant la liste, zlist_getnbitems rend le nombre de records de la liste.
Les fonctions zlist_moditem, zlist_insitem et zlist_delitem permettent de modifier dynamiquement la liste.

La fonction zlist_sort permet de retrier la liste (donner l'adresse d'une rubrique et sa longueur)
La fonction zlist_destroy supprime la liste.

début