begin process at 2008 05 16 06:40:10
1 173 219 membres
61 nouveaux aujourd'hui
13 970 membres club

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 : 3 900

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
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:{ ... }
  • 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

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS