wolffd@0: function [val, found, Nentries] = hash_lookup(key, fname) wolffd@0: % HASH_LOOKUP Lookup a key in a hash table stored in a file using linear search wolffd@0: % function [val, found, Nentries] = hash_lookup(key, filename) wolffd@0: % wolffd@0: % Example: wolffd@0: % If htbl.mat does not exist, wolffd@0: % [val,found,N] = hash_lookup('foo', 'htbl') wolffd@0: % returns found val = [], found = 0, N = 0 wolffd@0: % hash_add('foo', 42, 'htbl') wolffd@0: % hash_add('bar', [1:10], 'htbl') wolffd@0: % [val,found,N] = hash_lookup('foo', 'htbl') wolffd@0: % now returns val = 42, found = 1, N = 2 wolffd@0: % wolffd@0: % Type 'delete htbl' to delete the file/ reset the hashtable wolffd@0: wolffd@0: wolffd@0: val = []; wolffd@0: found = 0; wolffd@0: wolffd@0: if exist(fname, 'file')==0 wolffd@0: % new hashtable wolffd@0: Nentries = 0; wolffd@0: else wolffd@0: %hashtable = importdata(fname); wolffd@0: load(fname); wolffd@0: Nentries = length(hashtable.key); wolffd@0: for i=1:Nentries wolffd@0: if isequal(hashtable.key{i}, key) wolffd@0: val = hashtable.value{i}; wolffd@0: found = 1; wolffd@0: break; wolffd@0: end wolffd@0: end wolffd@0: end