Line | |
---|
1 | #!/usr/bin/env python |
---|
2 | |
---|
3 | #Read and write ICP Buffer files |
---|
4 | |
---|
5 | import sys |
---|
6 | import struct |
---|
7 | |
---|
8 | formatstr = '<50sh21f4s4i4f148x' |
---|
9 | |
---|
10 | |
---|
11 | def readIBufferFile(inputfile): |
---|
12 | |
---|
13 | f = open(inputfile, 'rb') |
---|
14 | data = f.read() |
---|
15 | f.close() |
---|
16 | |
---|
17 | #print struct.calcsize(formatstr) |
---|
18 | bufs = {} |
---|
19 | |
---|
20 | for i in range(30): |
---|
21 | bufs[i] = struct.unpack(formatstr,data[i*320:(i+1)*320]) |
---|
22 | |
---|
23 | #print line |
---|
24 | |
---|
25 | return bufs |
---|
26 | |
---|
27 | |
---|
28 | def writeIBufferFile(bufs,outputfile): |
---|
29 | |
---|
30 | data = "" |
---|
31 | |
---|
32 | for line in bufs: |
---|
33 | data = data+struct.pack(formatstr,bufs[line][0], |
---|
34 | bufs[line][1], |
---|
35 | bufs[line][2], |
---|
36 | bufs[line][3], |
---|
37 | bufs[line][4], |
---|
38 | bufs[line][5], |
---|
39 | bufs[line][6], |
---|
40 | bufs[line][7], |
---|
41 | bufs[line][8], |
---|
42 | bufs[line][9], |
---|
43 | bufs[line][10], |
---|
44 | bufs[line][11], |
---|
45 | bufs[line][12], |
---|
46 | bufs[line][13], |
---|
47 | bufs[line][14], |
---|
48 | bufs[line][15], |
---|
49 | bufs[line][16], |
---|
50 | bufs[line][17], |
---|
51 | bufs[line][18], |
---|
52 | bufs[line][19], |
---|
53 | bufs[line][20], |
---|
54 | bufs[line][21], |
---|
55 | bufs[line][22], |
---|
56 | bufs[line][23], |
---|
57 | bufs[line][24], |
---|
58 | bufs[line][25], |
---|
59 | bufs[line][26], |
---|
60 | bufs[line][27], |
---|
61 | bufs[line][28], |
---|
62 | bufs[line][29], |
---|
63 | bufs[line][30], |
---|
64 | bufs[line][31]) |
---|
65 | |
---|
66 | f = open(outputfile, 'wb') |
---|
67 | f.write(data) |
---|
68 | f.close() |
---|
69 | |
---|
70 | |
---|
71 | if __name__ == "__main__": |
---|
72 | if len(sys.argv) > 1: |
---|
73 | data = readIBufferFile(sys.argv[1]) |
---|
74 | else: |
---|
75 | data = readIBufferFile("IBUFFER.BUF") |
---|
76 | |
---|
77 | #for line in data: |
---|
78 | # print data[line] |
---|
79 | |
---|
80 | writeIBufferFile(data,"TEST.BUF") |
---|
Note: See
TracBrowser
for help on using the repository browser.