Hi there. I've been scripting for a while and have only recently run into this problem with the array module. I've looked around but haven't been able to find any information on how to properly iterate through a map (keytable/hashtable).
I use the following for lists:
Code:
new iKey = list_first(list, 0);
for(new i = iKey; i < list_size(list); i++)
{
if(list_isfilled(list, iKey))
{
// do whatever
}
iKey = list_next(list, iKey);
}
Everything runs fine using this but when it comes to keytables, there is no size() method (clearly) so I cannot do that. I've tried the following code and variations of it but no luck so far. Simply put, it either never enters the loop or runs it infinitely and obviously not executing logic as I intended it to.
Code:
new szKey[512];
map_first(table, "", szKey, strlen(szKey));
while(map_isfilled(table, szKey))
{
// do whatever
map_next(table, szKey, szKey, strlen(szKey));
}
Have also tried it with the null character as the limiting key in map_first but no luck.
Is there any proper way to iterate through a keytable/hashtable? This is essential for my script and I'd really rather not code the entire thing without keytables.
Thanks in advance!