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