Simulation de tableau dans mirc avec les hashtable

Description

Il y a deux script qui font a peu près la même chose.
Dans les deux cas, les scripts simulent un tableau à deux dimensions en utilisant les hashtable et les tokens.
Le même jeu d'alias de base est disponible dans les deux, préfixé par le type de tableau voulut.
lin2DTableMan.mrc gère un tableau sous forme d'une seule entrée. Les tokens utilisés découpent d'abord en colonne puis en ligne. Ce découpage est utilisé pour accélérer la fonction de recherche.
htabTableMan.mrc gère un tableau sous forme d'une entrée par ligne. Les tokens utiliss découpent uniquement les colonnes. Une enrée supplémentaire aux lignes indique le nombre de ligne.
Les fonctions fournies sont l'ajout de lignes (qui peut créer le tableau), l'ajout de colonnes, l'interrogation et la définition de la valeur d'une cellule, la recherche d'un texte sur une colonne, l'interrogation des dimensions, le retrait de ligne et le retrait de colonne.
Pour le tableau une entrée par ligne, une méthode de tri ascendant est aussi disponible.

La description des alias et leurs définition sont commentés dans les fichiers.

Source / Exemple :


;Création d'un tableau de %l lignes et %c colonnes dont les cellules sont initialisées à n°ligne.n°colonne
;En utilisant htabTableMan.
;La table de hashage est supposée existée.
;La variable %htab est initialisé au nom de la table de hashage.
;La variable %table est initialisée au nom du tableau.
;%l et %c sont positifs non nuls.

;Vidage du tableau existant de même nom pour partir à 0.
while ($htabTableRowCount(%htab, %table) > 0) {
  ;Retire la dernière ligne, exécution la plus rapide.
  htabTableRemRow %htab %table $htabTableRowCount(%htab, %table)
}
; Pour y de 1 à %l
var %y = 1
while (%y <= %l) {
  ;Ajouter la ligne %y.
  htabTableAddRow %htab %table %y
  ; Création des colonnes lors de la création de la première ligne.
  if (%y == 1) {
    ; Pour x de 2 à %c
    var %x = 2
    while (%x <= %c) {
      ; Ajout de la colonne %x
      htabTableAddCol %htab %table %x
      inc %x
    }
    ; Fin pour
  }
  ; Pour x de 1 à %c
  var %x = 1
  while (%x <= %c) {
    ;Définition de la valeur de la cellule (%y, %x).
    htabTableSetVal %htab %table %x %y %x $+ . $+ %y
    inc %x
  }
  ;Fin pour
  inc %y
}
;Fin pour

Exemple d'alias pour "error"
alias error {
  echo -a (error) $1-
}

Conclusion :


Pour tout question sur l'utilisation, poser la question.
De préférence en commentaire ou sur le salon à MyGoddess
Pour toute proposition de code à ajouter, me la soumettre, je serais ravis de complèter les fonctionnalités.
Depuis le temps que j'utilise ces scripts, je n'ai jamais eu de problème donc pas de bugs connus.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.