class Message:
    def __init__(self,message):
        self.alphabet = {
            "A" : "ž",
            "B" : "╣",
            "C" : "¥",
            "D" : "┼",
            "E" : "╔",
            "F" : "ã",
            "G" : "╝",
            "H" : "¿",
            "I" : "♠",
            "J" : "┤",
            "K" : "•",
            "L" : "£",
            "M" : "╬",
            "N" : "┌",
            "O" : "┬",
            "P" : "þ",
            "Q" : "ý",
            "R" : "º",
            "S" : "↔",
            "T" : "▲",
            "U" : "♂",
            "V" : "▼",
            "W" : "◄",
            "X" : "Ñ",
            "Y" : "♪",
            "Z" : "♣",
            "'" : "æ",
            " " : "■",
            "." : "ò",
            "," : "▓"}
        
        self.msg = message.upper()
        
    def code(self,col):
        r = ''
        i = 0
        for c in self.msg:
            r += self.alphabet[c]
            i += 1
            if i == col:
                i = 0
                r += '\n'
        return r

    def save(self,msg,name):
        with open(name, 'a' , encoding = 'utf8') as Fichier:
            Fichier.write(msg)
            
    def decode(self):
        r = ''
        for c in self.msg:
            if c != '\n':
                for key,value in self.alphabet.items():
                    if value == c:
                        r += key
                        
        return r
            
m = Message("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse accumsan tortor sed mi aliquet imperdiet. Donec convallis egestas diam, a facilisis ligula bibendum ac. Sed fermentum maximus massa et cursus. Sed quis finibus enim. Ut euismod ex at est facilisis ultrices. Cras placerat gravida velit, vehicula vestibulum est auctor a. Proin ac dui quis lacus maximus consectetur. Curabitur sed enim id diam placerat fringilla id et massa. Curabitur leo arcu, rutrum in massa nec, efficitur faucibus nisi. Etiam ex risus, volutpat at ante ac, placerat pharetra mi. Donec risus risus, tincidunt maximus lectus eu, cursus interdum nibh. Aliquam eget ante nec elit dapibus maximus. Phasellus pulvinar, ipsum sit amet varius pharetra, leo ante pretium erat, id pharetra felis ligula non arcu. Vestibulum ac ligula quis orci condimentum tristique ac quis turpis. Etiam diam purus, bibendum sit amet elit at, fermentum condimentum sem. Nulla sapien ex, bibendum vitae ipsum tempor, rutrum convallis leo. Suspendisse potenti. Vestibulum rutrum erat nec erat mollis, molestie dapibus enim malesuada. Vivamus sagittis sapien velit, eu fermentum magna porta at. Morbi placerat sapien odio, a dapibus arcu pellentesque quis. Vivamus bibendum, ante ut posuere fringilla, purus eros sodales nisl, vel tempus nisl mi quis eros. Duis ac metus eget odio tempus dapibus. In ac libero augue. Nam tincidunt, diam et dignissim posuere, velit sem tincidunt ex, vel eleifend dui augue id purus. Donec et odio metus. Aenean quis lectus velit. Donec blandit bibendum tortor. Praesent arcu nunc, egestas quis ex quis, sagittis eleifend felis. In id mauris et lacus placerat euismod. Suspendisse metus elit, imperdiet vel magna non, porta maximus orci. Proin eget mi a odio pharetra dignissim id sed nisi. Proin congue dui in enim posuere, eget lacinia enim interdum. Pellentesque quis velit tellus. Integer arcu sem, vehicula sit amet ante sed, vestibulum placerat erat. Nulla facilisi. Donec est lorem, pellentesque aliquam sem at, tempor ultrices nunc. Integer ut velit id augue malesuada tempus. In ac efficitur est. Donec mollis lorem et velit sodales tincidunt. Sed mattis dolor ex, ac tempor mi dignissim at. Cras id leo id odio dictum euismod. Interdum et malesuada fames ac ante ipsum primis in faucibus. Etiam vehicula placerat nulla at volutpat. Sed pharetra massa quis est tempus viverra. Fusce imperdiet dui vel arcu tristique cursus. Quisque maximus est risus, a viverra velit viverra vel. Suspendisse velit ligula, sodales ut interdum eu, tristique id quam. Vivamus volutpat erat at nisi cursus auctor. Pellentesque et dui nec sapien varius iaculis ac eu orci. Fusce tempor ante et erat egestas gravida. Fusce mattis placerat orci. Nam consequat, mi fermentum eleifend fringilla, purus orci malesuada neque, suscipit rutrum arcu purus ac leo. Ut laoreet cursus orci et commodo. Vestibulum malesuada nunc vitae ex auctor ullamcorper.")

m.save( m.code(30) , 'codage.txt' )

with open('codage.txt', 'r' , encoding = 'utf8') as Fichier:
    m2 = Message(Fichier.read())

print( m2.decode() )
