Name: Anonymous 2011-03-30 13:42
A simple Stardict client1 in python2, 21 lines with comments. How easy would it be to write an equivalent program in Common Lisp? I think Lisp is not suitable for practical problems.
_________________
1 - https://github.com/xiangfu/stardict/blob/master/doc/StarDictFileFormat
2 - Requires python 2.7
import re, gzip, struct
idx_file = open('/usr/share/stardict/dic/quick_english-italian.idx', 'r').read()
dic = gzip.open('/usr/share/stardict/dic/quick_english-italian.dict.dz', 'r')
idx_re = r"([\w\W]+?)\x00([\w\W]{8})"
index = {word:struct.unpack('>ii', bytes)
for (word, bytes) in re.findall(idx_re, idx_file)}
def lookup_word(word):
if word not in index:
return False
pos, size = index[word]
dic.seek(pos)
result = dic.read(size)
return result
while True:
result = lookup_word(raw_input("Enter a word: "))
print(result or "Word not found")_________________
1 - https://github.com/xiangfu/stardict/blob/master/doc/StarDictFileFormat
2 - Requires python 2.7