begin process at 2013 06 19 12:03:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Bots

 > HASH-TABLE POUR BOT, !SETTOPIC & !LOADTOPIC

HASH-TABLE POUR BOT, !SETTOPIC & !LOADTOPIC


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Bots Niveau :Débutant Date de création :03/08/2004 Date de mise à jour :03/08/2004 15:01:38 Vu :5 605

Auteur : neo66

Ecrire un message privé
Site perso
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:{ ... }

 Sources du même auteur

AFFICHE TOUS LES $CHR DANS UNE @FENETRE
AUTO OP ET AUTO VOICE :: N'IMPORTE QUEL SERVEUR !

 Sources de la même categorie

Source avec Zip AUTOVOICE TCL par aliassangelius
Source avec Zip GESTION.BOT V2.0 FINAL par aliassangelius
EXEMPLE DE TCL EN DCC par aliassangelius
Source avec Zip SERVICE GEOFRONT (PERL) par iZyTeHPariaH
Source avec Zip TCL EGGDROP par aliassangelius

Commentaires et avis

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 :)

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))

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 :)

Commentaire de Kerrigan le 03/08/2004 15:07:04

bonne idée

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

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 :)

Commentaire de neo66 le 04/08/2004 12:44:53

Merci Xquizz :)

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...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,494 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales