How to edit text

2

I'm trying to create an option where you can edit the startup text, but as I already have some lines of code I'm having a hard time finding a way to do it. How can you do it (in a simpler form than this code)?

#============<<<código de carregamento de dados>>>============# 
   def ler():                                                 #
       with open('maquina virtual 1ªversão.txt', 'r') as f:   #
        linhas = f.readlines()                                #
        return linhas                                         #
    f.close()                                                 #
                                                              #
if __name__ == "__main__":                                    #
    dados = ler()                                             #
#============<<<código de carregamento de dados>>>============#

#============<<<código de salvação de dados>>>============#
def guardarAlteracao(dado):                               #
    with open('maquina virtual 1ªversão.txt', 'r+') as f: #
        f.write(dado)                                     #
    f.close()                                             #
#============<<<código de salvação de dados>>>============#

#função que inicia a máquina virtual (função que coopera com a função bios()-> se esta tiver sido indevidamente alterada pelo usuário, esta impede o arranque do SO):
global texto

def arranque():
    texto = "Bem vindo à máquina virtual. Prima ENTER para iniciar o SO ou B para aceder ao menu da BIOS setup utility."
    print texto
    machine = raw_input("")
    if machine == "B".upper():
        print "A iniciar a BIOS..."
    for i in range(1000):
        print "..."
    # else:
        #storm()
arranque()

#função principal(1ª)--> bios:
def bios():
    print "------------------ \n"
    print "BIOS setup utility \n"
    print "------------------"
    opcao =raw_input("Está no menu da BIOS. Escolha o que pretende aceder: Informações do sistema, Data, Avançadas(secção ainda a concluir), Configurações do SO (escreva quit para voltar ao menu e back se quiser voltar ao menu principal da BIOS) \n")
    if opcao == "Informações do sistema":
        print "--------------"
        print "Maquina virtual"
        print "--------------"
        print "Versão: 1.0v 32bit \n Data da criação: 07/06/14 \n Compatível com Windows XP, Windows Vista, Windows 7, Windows 8, Unix, Linux, Ubuntu e Mac OS"
        print "Todos os direitos reservados © 2014"
        rebobinar = raw_input("")
        if rebobinar == "back":
            bios()
    elif opcao == "Data":
        print "--------------"
        print "Data"
        print "--------------"
        print "Sistema Operativo(simulado): BITsky one® \nInterface: Literal (e GUI nas próximas atualizações) \nLinguagem de programação predefinida: Python"
        import win32api
        path = "C:/"
        info = win32api.GetVolumeInformation(path)
        print( "Número da série do disco rígido: = %d" % info[1] )
        rebobinar = raw_input("")
        if rebobinar == "back":
            bios()
    elif opcao == "Avançadas":
        print "--------------"
        print "Avançadas"
        print "--------------"
        configurar = raw_input("Para configurar as defenições da máquina virtual, escreva a password bitwise para aceder: \n")
        if configurar == "0b10b100b110b100":
            print "As opções disponíveis são: \nAlterar a forma de inicialização, \nDesinstalar SO, \nCriar permissões especiais para a VM, \nVer código fonte da VM"
            avanced = raw_input("")
            if avanced == "Alterar a forma de inicialização":
                alterar = raw_input("O que deseja alterar: \nApresentação inicial da VM, \nApresentar código de arranque, \nEditar código(aviso: qualquer alteração incorreta destes pode instabilizar a VM)?")
                if alterar == "Apresentação inicial da VM":
                    imprima = raw_input("Digite o texto que pretende que o programa imprima no início (sugestão: refira os nomes das teclas que iniciam o SO(ENTER) ou o menu da BIOS(B)):")
                    def editar():
                        if imprima == texto:
                            print texto
                        else:
                            print imprima
                    save = raw_input("Guardar alterações?")
                    if save == "sim" or save == "si" or save == "s".lower():
                        guardarAlteracao('Alguma coisa aqui')
                    rebobinar = raw_input("")
                    if rebobinar == "back":
                        bios()
                elif alterar == "Apresentar código de arranque":
                    #código ainda não concluído
                    if rebobinar == "back":
                        bios()
                elif alterar == "Editar código":
                    #código ainda não concluído
                    quit()
            elif avanced == "Desinstalar SO":
                deletar_so = raw_input("Tem mesmo a certeza (atenção: depois não pode restaurar e pode perder dados)?)")
                if deletar_so == "sim" or deletar_so == "yes":
                    for i in range(1234):
                        print "A desinstalar o SO..."
                    #função bitsky_one--> deletar
                    print "SO desinstalado."
            elif avanced == "Criar permissões especiais para a VM":
                password()
    elif opcao == "quit":
        arranque()
        bios()
bios()
#from Tkinter import *
#import win32api
#print win32api.GetVolumeInformation("C:\")
    
asked by anonymous 12.06.2014 / 01:44

1 answer

2

In the following excerpt:

if avanced == "Alterar a forma de inicialização":
    alterar = raw_input("O que deseja alterar: \nApresentação inicial da VM, \nApresentar código de arranque, \nEditar código(aviso: qualquer alteração incorreta destes pode instabilizar a VM)?")
    if alterar == "Apresentação inicial da VM":
         imprima = raw_input("Digite o texto que pretende que o programa imprima no início (sugestão: refira os nomes das teclas que iniciam o SO(ENTER) ou o menu da BIOS(B)):")
         def editar():
              if imprima == texto:
                  print texto
              else:
                  print imprima

Call the function guardarAlteracao() by pointing to the variable imprima as a parameter, like this:

configurar = raw_input("Para configurar as defeinicoes da maquina virtual, escreva a password bitwise para aceder: \n")
if configurar == "0b10b100b110b100":
    avanced = raw_input("As opcoes disponiveis sao: \nAlterar a forma de inicializacao, \nDesinstalar SO, \nCriar permissoes especiais para a VM, \nVer codigo fonte da VM")
    if avanced == "Alterar a forma de inicializacao":
        alterar = raw_input("O que deseja alterar: \nApresentacao inicial da VM, \nApresentar codigo de arranque, \nEditar codigo(aviso: qualquer alteracao incorreta destes pode instabilizar a VM)?")
        if alterar == "Apresentacao inicial da VM":
            imprima = raw_input("Digite o texto que pretende que o programa imprima no inicio (sugestao: refira os nomes das teclas que iniciam o SO(ENTER) ou o menu da BIOS(B)):")
            if (len(imprima) > 0):
                guardarAlteracao(imprima)

Tip: For better visualization, indent the code and when you ask the user to enter some value, choose which option , do not ask the user to enter words (type: Change the bootstrap, uninstall OS, create special permissions for VM, view VM source ) but rather with letters indicating the desired option, this facilitates a lot.

To read the saved text, call the function ler() , like this:

dados = ler()
dados = "".join(str(s.replace('[', '').replace(']', '')) for s in dados)
print(dados)
    
12.06.2014 / 02:33