Hash Table Manager

By anthony1293 on Aug 11, 2011

Screenshots

This is a hash table manager/viewer to help view and manager your hash tables easily. This manager has many options allowing you to edit and change info within a hash table.

An auto update feature will be added in the next update and it will have more options and settings.

; ############################################
; ##            hash Table Manager          ##
; ##                Made By:                ##
; ##              Anthony1293               ##
; ##                                        ##
; ##             Version: 1.0               ##
; ############################################

on *:LOAD: {
  echo 3 -a Thank you for using this Hash table manager made by: Anthony1293
  echo -a -
  echo 3 -a To start right click in a window and click on "Hash table manager" or type /htable
}

menu * {
  Hash table manager:/htable
}
alias htable {
  echo -a 7Loading Hash table manager.
  echo -a -
  echo -a 7Please Wait...
  echo -a -
  if ($dialog(htable)) { 
    echo 4 -a Hash table manager is already open.
    echo -a -
    echo 14 -a mIRC will now close the current one and re-open a new one.
    echo -a -
    echo 7 -a Please wait...
    dialog -x htable htable
  }
  dialog -md htable htable
}
dialog htable {
  title Hash table manager
  size -1 -1 125 180
  option dbu
  list 1, 6 83 113 80, hsbar vsbar size
  button "New", 2, 35 50 21 10
  button "Delete", 3, 60 50 30 10, disable
  button "Edit", 4, 94 50 25 10, disable
  button "Back", 5, 6 50 25 10, disable
  list 6, 6 6 113 45, autovs autohs multi
  text "Total Hash tables:", 7, 6 73 50 10
  text "", 8, 51 73 30 10
  edit "", 9, 6 6 113 40, hide disable autovs autohs multi
  button "Update", 10, 94 50 25 10, hide
  text "", 11, 3 63 120 10, center
  button "Add Item", 12, 6 167 30 10, disable
  button "Refresh List", 13, 80 167 35 10
  button "Remove Item", 14, 39 167 38 10, disable
}
on *:DIALOG:htable:init:0:{
  did -a $dname 8 $hget(0)
  if ($hget(0) >= 1) {
    var %a 1 
    while (%a <= $hget(0)) {
      did -a $dname 1 $hget(%a)
      inc %a
    }
  }
  else did -ad $dname 1 No Hash Tables
}
on *:DIALOG:htable:sclick:*: {
  did -r $dname 11
  if ($did == 1 && $did(1).seltext != No Hash Tables) {
    did -rv $dname 6
    did -b $dname 5,4,9,14
    did -h $dname 9 
    did -e $dname 3,12
    var %x 1
    while (%x <= $hget($did(1).seltext,0).item) {
      did -a $dname 6 $hget($did(1).seltext,%x).item
      inc %x
    }
  }
  if ($did == 5) {
    did -b $dname 5,9,4
    did -h $dname 9,10 
    did -v $dname 6,4
    did -e $dname 12,14
    if ($hget(0) != $did(8)) {
      did -r $dname 1
      var %a 1 
      while (%a <= $hget(0)) {
        did -a $dname 1 $hget(%a)
        inc %a
      }
      did -ra $dname 8 $hget(0)
    }
  }
  if ($did == 6) {
    did -e $dname 14
  }
  if ($did == 4) {
    did -e $dname 9
    did -h $dname 4
    did -v $dname 10
  }
  if ($did == 3) {
    if ($did(1).sel) {
      did -b $dname 5,9,4
      did -h $dname 9,10 
      did -v $dname 6,4
      did -r $dname 6
      hfree $hget($did(1).sel)
      did -d $dname 1 $did(1).sel
      did -ra $dname 8 $hget(0)
      if ($hget(0) == 0) {
        did -b $dname 3 
        did -ra $dname 1 No Hash Tables 
      }
    }
  }
  if ($did == 2) {
    if ($input(Please select a name for the hash table,oue,Hash Maker)) {
      var %hname $v1
      if ($input(Please select an item name,oue,Hash Maker)) {
        var %item $v1
        var %eval $input(Would you like your data to be evaluated in the hash table?,yuq,Hash Maker)
        var %itemdata $input(Please enter the data you want in your hash table,oue,Hash Maker)
        if ($hget(0) == 0) did -r $dname 1
        hadd -m %hname %item $iif(%eval,$(,%itemdata),%itemdata)
        did -a $dname 1 %hname
        if ($hget(0) != $did(8)) did -ra $dname 8 $hget(0)
      }
      else noop $input(You must select an item name for the hash table,oudwk3,Hash Maker)
    }
    else noop $input(You must select a name for the hash table,oudwk3,Hash Maker)
  }
  if ($did == 10) {
    if ($did(1).sel) {
      hadd $did(1).seltext $did(6).seltext $did(9)
      did -ra $dname 11 Hash table has been updated
    }
  }
  if ($did == 12) {
    var %hname $did(1).seltext
    if ($input(Please select an item name you would like to add to %hname,oue,Hash Maker)) {
      var %item $v1
      var %eval $input(Would you like your data to be evaluated in the hash table?,yuq,Hash Maker)
      var %itemdata $input(Please enter the data you want in your hash table,oue,Hash Maker)
      if ($hget(0) == 0) did -r $dname 1
      hadd -m %hname %item $iif(%eval,$(,%itemdata),%itemdata)
      did -a $dname 6 %item
      if ($hget(0) != $did(8)) did -ra $dname 8 $hget(0)
    }
    else noop $input(You must select an item name for the hash table,oudwk3,Hash Maker)

  }
  if ($did == 13) {
    did -a $dname 8 $hget(0)
    did -r $dname 1,6,9
    did -b $dname 3,12,14
    if ($hget(0) >= 1) {
      var %a 1 
      while (%a <= $hget(0)) {
        did -a $dname 1 $hget(%a)
        inc %a
      }
    }
    else did -ad $dname 1 No Hash Tables
  }
  if ($did == 14) {
    hdel $did(1).seltext $did(6).seltext
    did -d $dname 6 $did(6).sel
    did -b $dname 14
    did -ra $dname 11 The item you selected has been deleted
  }
}
on *:DIALOG:htable:dclick:*: {
  if ($did == 6) {
    did -b $dname 12,14
    did -h $dname 6
    did -e $dname 5,4
    did -rva $dname 9 $hget($did(1).seltext,$did(6).sel).data
  }
}

Comments

Sign in to comment.
troll   -  Aug 29, 2011

do u happen to be from irc.swiftirc.net ?

 Respond  
troll   -  Aug 29, 2011

nice

 Respond  
Jethro   -  Aug 12, 2011

┌П┐([size=25]=P[/size])┌П┐

Oh, I'm not hacked.

 Respond  
Veritas   -  Aug 12, 2011

Interesting smiley Napa!

 Respond  
napa182   -  Aug 11, 2011

[size=25]=P[/size]

 Respond  
Jethro   -  Aug 11, 2011

Since * means everywhere, I think these should've been included too:> ,nicklist,querybut whatever floats your boat. lol

 Respond  
napa182   -  Aug 11, 2011

all them echos when you open the dialog are imo unneeded as well as having the dialog close then reopen when you click Hash table manager cause you have a refresh button for that . On your menu you shouldn't use menu * as it can screw with picwins an such.

take these as an example:

menu menubar,channel,status {
  Hash table manager:htable
}
alias htable dialog $iif($dialog(htable),-v,-md htable) htable

anyways interesting take on this. keep at it...

 Respond  
Veritas   -  Aug 11, 2011

Looks nice :)

 Respond  
Wade   -  Aug 11, 2011

Execlent, I like it :D

Good job. 7/10

 Respond  
anthony1293   -  Aug 11, 2011

added =]

 Respond  
blackvenomm666   -  Aug 11, 2011

screen shot would be nice

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.