home *** CD-ROM | disk | FTP | other *** search
- #
- # Create 'Estr' resource from error dictionary
- from Res import *
- import Res
- from Resources import *
- import MacOS
- import string
-
- READ = 1
- WRITE = 2
- smAllScripts = -3
-
- def Pstring(str):
- if len(str) > 255:
- raise ValueError, 'String too large'
- return chr(len(str))+str
-
- def writeestr(dst, edict):
- """Create Estr resource file given a dictionary of errors."""
-
-
- FSpCreateResFile(dst, 'RSED', 'rsrc', smAllScripts)
- output = FSpOpenResFile(dst, WRITE)
- UseResFile(output)
- for num in edict.keys():
- res = Resource(Pstring(edict[num]))
- res.AddResource('Estr', num, '')
- res.WriteResource()
- CloseResFile(output)
-
- def parsefile(src):
- fp = open(src)
- lines = []
- while 1:
- x = fp.readline()
- if not x:
- break
- x = x[:-1]
- words = string.split(x)
- if x[0] in (' ', '\t'):
- # continuation line
- x = string.join(words)
- lines[-1] = lines[-1] + ' ' + x
- else:
- x = string.join(words)
- lines.append(x)
- dict = {}
- for line in lines:
- words = string.split(line)
- index = eval(words[0])
- if dict.has_key(index):
- print '** Duplicate key:', index
- x = string.join(words[2:])
- if not x:
- x = words[1]
- dict[index] = x
- return dict
-
-
- if __name__ == '__main__':
- dict = parsefile('errors.txt')
- writeestr('errors.rsrc', dict)
-