def loadDict(frame): if gdict: return True s = util.loadMaybeCompressedFile(u"dict_en.dat", frame) if not s: return False lines = s.splitlines() chars = "abcdefghijklmnopqrstuvwxyz" for ch1 in chars: for ch2 in chars: prefixDict[ch1 + ch2] = set() gwp = util.getWordPrefix for word in lines: # theoretically, we should do util.lower(util.toInputStr(it)), but: # # -user's aren't supposed to modify the file # # -it takes 1.35 secs, compared to 0.56 secs if we don't, on an # 1.33GHz Athlon gdict.add(word) if len(word) > 2: prefixDict[gwp(word)].add(word) return True
def readNames(frame): global nameArr if nameArr: # already loaded return True try: data = util.loadMaybeCompressedFile(u"names.txt", frame) if not data: return False res = namearray.NameArray() nameType = None for line in data.splitlines(): ch = line[0] if ch == "#": continue elif ch == "N": nameType = line[1:] elif ch in ("M", "F"): if not nameType: raise Exception("No name type set before line: '%s'" % line) res.append(line[1:], nameType, ch) else: raise Exception("Unknown linetype for line: '%s'" % line) nameArr = res return True except Exception, e: wx.MessageBox("Error loading name database: %s" % str(e), "Error", wx.OK, frame) return False