Nouvel alias pour hash table /hrep

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 056 fois - Téléchargée 27 fois

Contenu du snippet

Cet alias vous permettra de remplacer un le contenu d'un item d'une table par quelque chose d'autre. Si vous avez d'autres idées comuniquez les moi merci

Source / Exemple :


alias hrep {
  if (!$1) { echo -a *** /hrep Erreur Il manque des paramètres . Nom de la table manquante | halt }
  if (!$2) { echo -a *** /hrep Erreur Il manque des paramètres . Nom de l'item absent | halt  }
  if (!$3-) { echo -a *** /hrep Erreur Il manque des paramètres . Paramètre remplaçant manquant | halt  }
  else {
    if (!$hget($1)) { echo -a *** /hrep Erreur table $1 Inexistante | halt }
    if (!$hget($1,$2)) { echo -a *** /hrep Erreur Item $2 de la table $1 Inexitant | halt }
     .hadd -m $1-
  }
}

Conclusion :


Le but de ce code est de supprimer l'item puis de le recréer

A voir également

Ajouter un commentaire

Commentaires

Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008

ok autant pour moi désolé ^^
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1
j'ai rajouté le point pour qu'on voye dans mon commentaire que ct une commande, comme si je connaissais pas les hash tables lais mdr quoi ..
Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008

A mince j'ai oublié de signaler/modifier une autre erreur :
Par défauts les fonctions sur les htables n'affichent rien (il faut utiliser le paramêtre "-s") donc le "." devant "hadd" sert à rien, tofu c'est aussi vrai pour toi avec "hdel"...
Messages postés
71
Date d'inscription
dimanche 23 juin 2002
Statut
Membre
Dernière intervention
1 février 2008

Bravo félicitations je t'ai mis 1 (Bon maintenant je me justifie avant de me faire casser la g***le)

Dans un alias appelé sous la forme /hrep il est impossible que les paramêtres $1 et $2 soient nuls si $3 ne l'est pas. Et plus simplement tu peux tester si "$0 > 2" ($0 contient le nombre de paramètres).
Note : Dans un identifiant il faudrait d'abords utiliser "/tokenize 32 $1-" pour parvenir au même résultat.

De plus tu utilise l'option "-m", je cite l'aide :
"L'option -m fait que /hadd crée la table si elle n'existe pas déjà."
Et ben alors... pkoi diable est-ce qu'on viens de faire un "if (!$hget($1))" ??

De plus il est toujours plus judicieux (pas obligatoire !) de traiter en premier les cas ou tout ce passe bien, puis traiter les erreurs à la fin ; surtout quand on se trouve dans une structure if/then/else facile à lire.

Et enfin une remarque -juste pour faire plus classe- on peut remplacer tous les 5 "halt" par seulement 1 "halt" pour le prix d'un "return" en plus.

Voilà ce que ca donne :

alias hrep {
if $0 > 2 {
if $hget($1,$2) != $null { .hadd -m $1- | return }
elseif !$hget($1) { echo -a *** /hrep Erreur table $1 Inexistante }
else echo -a *** /hrep Erreur Item $2 de la table $1 Inexitant
}
else echo -a *** /hrep Erreur Il manque $calc(3 - $0) paramètre(s).
halt
}
Messages postés
1726
Date d'inscription
vendredi 12 septembre 2003
Statut
Membre
Dernière intervention
13 juin 2009
1
t'as pas besoin de .hdel puis .hadd, qd tu .hadd ça écrase ce que tu avais précédemment.
Afficher les 10 commentaires

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.