We can guess from your post that you have a section in your ini file with item being zipcode and the data being the state/city, if that's not correct, blame yourself for not giving enough details.

What you are saying means that the way ini files work, you'll have to loop 42000 times over $ini to find all matches for a given state/city, because there is no $inifind or similar.

You can do that, but that's going to be terribly slow for no reason, ini file are just not the tool you want to use, hash table are, note also that moving the data from an ini file to an hash table is done internally by mIRC using the /hload -i function, no need for you to convert anything, here is a little example:
Code:
alias findmatch {
hmake test
hload -i test c:\myinifile.ini mysection
;supposing the ini file structure is like <zipcode>=<city>@<state>, you would use $hfind to find matches:
echo -a there is $hfind(test,mycity@mystate,0,w).data matches
;this means "look in the table 'test' for some data matching (using wildcard) "mycity@mystate"".
;mirc will basically perfom the 42000 iterations of the loop for you.
hfree test
}


#mircscripting @ irc.swiftirc.net == the best mIRC help channel