示例#1
0
文件: test.py 项目: DarkArmed/Merger
def test(test_case):
    merger = Merger(test_case)
    # codes = merger.get_codes(3)

    for k in range(10, 9, -1):
        value_sum = 0
        for code, num in merger.merge_result(k).items():
            value_sum += num
        print 'k =', k, merger.merge_result(k), ' \tMerged codes:', len(merger.merge_result(k)), ' \tTotal value:', value_sum
示例#2
0
class Application(Frame):
    def __init__(self, master = None):
        Frame.__init__(self, master)
        
        self.opend_file = None
        background = 'white'
        text_background = '#EEE'

        master.configure(bg = background)
        master.minsize(600, 600)
        master.title('代码合并器')

        master.rowconfigure(1, weight = 1)
        for col in range(10):
            self.master.columnconfigure(col, weight = 1)
        
        self.label_src = Label(master, text = '原始码', bg = background)
        self.label_src.grid(row = 0, column = 0, rowspan = 1, columnspan = 5, sticky = W+S, padx = 10, pady = 10)

        self.text_src = Text(master, bg = text_background)
        self.text_src.grid(row = 1, column = 0, rowspan = 1, columnspan = 5, sticky = W+E+N+S, padx = (10, 5), pady = 0)

        self.label_dst = Label(master, text = '精简码', bg = background)
        self.label_dst.grid(row = 0, column = 5, rowspan = 1, columnspan = 5, sticky = W+S, padx = 5, pady = 10)

        self.text_dst = Text(master, bg = text_background)
        # self.text_dst.config(state = 'disable')
        self.text_dst.grid(row = 1, column = 5, rowspan = 1, columnspan = 5, sticky = W+E+N+S, padx = (5, 10), pady = 0)

        self.button_open = Button(master, text='导入', width = '10', bg = background, command = self.open)
        self.button_open.grid(row = 2, column = 2, rowspan = 1, columnspan = 2, sticky = N+S, pady = 10)

        self.button_merge = Button(master, text='合并', width = '10', bg = background, command = self.merge)
        self.button_merge.grid(row = 2, column = 4, rowspan = 1, columnspan = 2, sticky = N+S, pady = 10)

        self.button_save = Button(master, text='导出', width = '10', bg = background, command = self.save)
        self.button_save.grid(row = 2, column = 6, rowspan = 1, columnspan = 2, sticky = N+S, pady = 10)

    def open(self):

        self.openfile = tkFileDialog.askopenfile(mode = 'r', defaultextension=".txt")
        text = self.openfile.read()
        print 'File loaded.'
        print text
        self.text_src.delete(0.0, END)
        self.text_src.insert(END, text)

    def merge(self):
        # self.text_dst.config(state = 'normal')

        text = self.text_src.get('1.0', END)
        # print text.encode('utf-8')
        codes2num = decode(text)
        # print codes2num

        self.merger = Merger(codes2num)

        self.text_dst.delete(0.0, END)

        result_text = ''
        for k in range(10, 3, -1):
            result_text += '最大长度' + str(k) + ' '
            result_text += encode(self.merger.merge_result(k))
            # print result_text

        self.text_dst.insert(END, result_text)
        # self.text_dst.config(state = 'disable')

    def save(self):

        self.savefile = tkFileDialog.asksaveasfile(mode = 'w', defaultextension=".txt")
        text = self.text_dst.get(0.0, END)
        # print text.encode('utf-8')
        self.savefile.write(text.encode('utf-8'))
        self.savefile.close()