It possible?
var %i = $hget(0), %s = 0
while (%i) {
var %table = $hget(%i), %t = $hget(%table,0).item, %i = %i - 1
while (%t) var %s = %s + $len($hget(%table,%i).item), %s = %s + $len($hget(%table,%i).data), %t = %t - 1
}
return $bytes(%s).suf
but this is stupid, i think.
Just wanna know, how mIRC using memory, not himself, only bases: hash tables.
I need to know what kind of data is in your table. Can you show me an item in your table please.
It looks like you're trying to determine the amount of memory used by your hash tables.
If so, then the code you wrote is along the right idea. You just have some problems with syntax and structure.
Here's the one I wrote, and tested, and it appears to be correct based upon the data in my hash tables
alias hash_size {
var %a = $hget(0)
while %a {
var %c = $hget(%a), %d = $hget(%c,0).item
while %d {
var %e = $hget(%c,%d).item, %f = $hget(%c,%d).data
inc %g $calc($len(%e) + $len(%f))
dec %d
}
dec %a
}
echo -a $bytes(%g).suf
}
If so, then the code you wrote is along the right idea. You just have some problems with syntax and structure.
His code is perfectly fine, where are the syntax or structure problem ?
Probably where he tries to calc the numbers without $calc and just uses +.
You don't need $calc() with /vars ... at least with a basic calculation as was used.
The error is in:
while (%t) var %s = %s + $len($hget(%table,%i).item), %s = %s + $len($hget(%table,%i).data), %t = %t - 1
%t needs to be used instead of %i in both $hget() sections. That's the only change necessary, but RusselB's is a bit easier to read.