Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

HASH-TABLE POUR BOT, !SETTOPIC & !LOADTOPIC


Information sur la source

Catégorie :Bots Niveau : Débutant Date de création : 03/08/2004 Date de mise à jour : 03/08/2004 15:01:38 Vu : 4 349

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Ce petit bout de code, sert a sauvegarder le topic dans une hash-table pour pouvoir le loader plus tard, au cas où il serais suprimée.
Enfin bon, j'ai surtout codé ce petit add-on pour apprendre les hash-table
 

Source

  • on *:start:{
  • ;dès le demarrage du script
  • hmake bot 100
  • ;on crée la table bot
  • hload bot hash-bot.txt
  • ;on load la table
  • }
  • on *:TEXT:!settopic*:#:{ if ($nick isop #) {
  • ;on attend qu'un op tape !settopic <topic>
  • hload bot hash-bot.txt
  • ;on crée et on load la table
  • if ($hget(bot,$+(topic.,$chan)) == $null) {
  • ;si il n'existe pas de topic sauvegader pour se channel
  • hadd bot $+(topic.,$chan) $2-
  • ;ajoute a la table bot l'item topic.$chan avec la valeur $2-
  • hsave -o bot hash-bot.txt
  • ;sauvegarde la table bot dans hash-bot.txt
  • notice $nick Topic Enregistrée !
  • ;envoi une notice
  • }
  • else {
  • ;si un topic existe deja pour ce chan
  • hdel bot $+(topic.,$chan)
  • ;on le supprime
  • hadd bot $+(topic.,$chan) $2-
  • ;on rajoute le nouveau
  • hsave -o bot hash-bot.txt
  • ;on sauvegarde dans hash-bot.txt
  • notice $nick Topic Enregistrée !
  • ;notice
  • }
  • }
  • }
  • on *:TEXT:!loadtopic:#:{ if ($nick isop #) {
  • ;attend qu'un op tape !loadtopic
  • hload bot hash-bot.txt
  • ;on crée et on load la table
  • if ($hget(bot,$+(topic.,$chan)) != $null) {
  • ;si un topic est trouvée pour ce chan dans la base
  • topic # $hget(bot,$hmatch(bot,$+(topic.,$chan),1))
  • ;on le met
  • }
  • else {
  • ;si aucun topic n'est trouvé
  • notice $nick Aucun topic trouvé
  • ;on le dit
  • }
  • }
on *:start:{
 ;dès le demarrage du script
 hmake bot 100
 ;on crée la table bot
 hload bot hash-bot.txt
 ;on load la table
}

on *:TEXT:!settopic*:#:{ if ($nick isop #) {
 ;on attend qu'un op tape !settopic <topic>
  hload bot hash-bot.txt
 ;on crée et on load la table
    if ($hget(bot,$+(topic.,$chan)) == $null) {
  ;si il n'existe pas de topic sauvegader pour se channel
      hadd bot $+(topic.,$chan) $2-
  ;ajoute a la table bot l'item topic.$chan avec la valeur $2-
      hsave -o bot hash-bot.txt
  ;sauvegarde la table bot dans hash-bot.txt
      notice $nick Topic Enregistrée !
  ;envoi une notice
    } 
    else { 
   ;si un topic existe deja pour ce chan
      hdel bot $+(topic.,$chan)
   ;on le supprime
      hadd bot $+(topic.,$chan) $2-
   ;on rajoute le nouveau
      hsave -o bot hash-bot.txt
   ;on sauvegarde dans hash-bot.txt
      notice $nick Topic Enregistrée !
  ;notice
    }
  }
}

on *:TEXT:!loadtopic:#:{ if ($nick isop #) {
 ;attend qu'un op tape !loadtopic
  hload bot hash-bot.txt
  ;on crée et on load la table
    if ($hget(bot,$+(topic.,$chan)) != $null) {
    ;si un topic est trouvée pour ce chan dans la base
      topic # $hget(bot,$hmatch(bot,$+(topic.,$chan),1))
    ;on le met
    }
else { 
  ;si aucun topic n'est trouvé
   notice $nick Aucun topic trouvé
  ;on le dit
 }
}

Conclusion

Voila, je l'est testé, il n'y a aucun bug (enfin j'espere).
J'espere que ce code à aidé les debutant.

n3o
 

Historique

03 août 2004 12:17:48 :
un petit bug, la table ne se charger pas, j'avais oublier: hmake bot 100 hload bot hash-bot.txt Voila c'est reparé ++
03 août 2004 12:20:11 :
je suis allez trop vite dans mes mise a jour :)
03 août 2004 15:01:39 :
ajout d'un on *:start:{ ... }

Commentaires et avis

signaler à un administrateur
Commentaire de ReMi34 le 03/08/2004 13:52:56

Je trouve ça inutile, enfin c'est mon avis.
Niveau codage : assez bonne utilisation des hash tables, rien d'autre à dire, c'est un peu simple :)

signaler à un administrateur
Commentaire de PaDa le 03/08/2004 14:00:25

J'ai pas testé mais j'aime bien le fait que le code soit commenté ... c'est pas d'une utilité fulgurante mais c'est une bonne introduction aux hashtables...
Petit conseil :
if ($hget(bot,$+(topic.,$chan)) != $null) { peut devenir ca : if $hget(bot,$+(topic.,$chan)) {
(en fait ce n'est pas équivalent , ma condition signifie que c'est différent de $null , $false et 0 mais bon un topic ressemble a aucun de ces trucs ...)
Sinon tu aurais ptet du regrouper tes deux "on text" , et peut etre aussi avant de /hmake la table vérifier qu'elle n'existe pas par un 'if !$hget(bot)' mais c'est un bon début bonne continuation :o))

signaler à un administrateur
Commentaire de neo66 le 03/08/2004 14:59:05

ReMi32 : J'ai fait sa surtout pour moi, j'ai commencé les hashtables ce matin donc bon voila, pis aussi pour ceux qui voudrais decouvrir les hashtables

PaDa : Pour ce qui est dela verification de hmake je ne l'est pas fait car, dans mon bot, des le start, il crée la table et la load, mais c'est vrai j'aurais dut mettre le "on *:start " avec ce code, d'ailleur je vais le mettre :)

signaler à un administrateur
Commentaire de Kerrigan le 03/08/2004 15:07:04

bonne idée

signaler à un administrateur
Commentaire de neo66 le 03/08/2004 17:17:47

Humm, j'aurais pus optimisé se code tres facilement, notament au lieu de:
hdel bot $+(topic.,$chan)
hadd bot $+(topic.,$chan) $2-

Vus que hadd supprime les items moin recent, j'aurais pus directement mettre:
hadd bot $+(topic.,$chan) $2-

Enfin au moin j'aurais montrer comment fonctionne le hdel :p

n3o

signaler à un administrateur
Commentaire de Xquizz le 04/08/2004 09:07:32

Ce n'est pas l'utilité qui compte dans ce code mais la demonstration de la htable. Bonne petite source pour les débutant, bravo :)

signaler à un administrateur
Commentaire de neo66 le 04/08/2004 12:44:53

Merci Xquizz :)

signaler à un administrateur
Commentaire de tempusus le 06/08/2004 23:25:01 administrateur CS

Soir,

source commentée, pas très utile mais bonne base.
6/10

Cordialement

Tempusus
Admin CS

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.