Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Posts postados por Graymalkin

  1. Faça um teste colocando o texto "teste1-teste2-teste3" na célula A1 e use este código de exemplo:

    Sub teste()
        Dim dados() As String
        Dim d
        
        dados = Split(Range("A1").Value, "-")
        
        For Each d In dados
            MsgBox d
        Next
    End Sub

     

    Abraços!

  2. Use um contador, pois diferente do for (onde você tem um número limitado de elementos), o while executa enquanto uma condição estiver sendo atendida. No seu exemplo, 3x4, ele executaria quatro vezes incrementando em 3 o resultado:

    n1 = int(input("Digite o primeiro valor:"))
    n2 = int(input("Digite o segundo valor:"))
    
    cont = 0
    result = 0
    while (cont<n2):
        result += n1
        cont += 1
        
    print("Resultado: ", result)

    Certo? 😉

     

  3. Aparentemente então a base está corrompida. Uma vez copiei a pasta "data" de um servidor que estava com o HD comprometido por vários bad blocks (que afetaram alguns bancos, mas não afetou o que eu precisava) para outro computador com a mesma versão do PG e funcionou certinho (eu só não conseguia acessar os bancos que não foram copiados completamente). Mas o ideal mesmo seria fazer a restauração pelo backup.

    Abraços!

  4. Sim, tanto o backup quando a pasta "data" funcionarão, desde que você instale a mesma versão que estava anteriormente. No caso do backup, versões posteriores vão reconhecer também (só não serve tentar usar um backup de uma versão nova em uma versão antiga). Pela instalação antiga você terá como ver qual era a versão usada.

    Abraços!

  5. 4 horas atrás, M4NT1S disse:

    Estou usando vírgula no lugar do ponto, triste kkkk

    Ah tá, eu já ia falar que aqui funcionava normalmente... rsrsrsrs

    >>> 10 * 0.10
    1.0

    A vírgula é o nosso separador decimal, mas usa-se o padrão americano quando se programa (então tem que obrigatoriamente usar o ponto no código).

    Abraços!

  6. O format() apenas coloca os argumentos passados dentro da string, ou seja, {0} vai se tornar o conteúdo de dados[0], e {1} vai se tornar o conteúdo de dados[1] (na primeira linha em que é usado). Daria o mesmo se fizéssemos:

    dt1 = datetime.datetime.strptime(dados[0] + " " + dados[1], "%Y/%m/%d %H:%M")

    Apenas o format é uma maneira mais limpa de se formatar strings.

    Abraços!

  7. Supondo que o seu CSV é assim...

    2017/01/01;23:30;2017/01/01;00:30 
    2017/02/01;23:30;2017/02/01;23:40 
    2017/03/01;15:45;2017/03/01;17:30 
    2017/04/10;23:50;2017/04/10;00:30
    2017/07/16;23:50;2017/07/17;00:30

    ... você poderia fazer isso:

    import io
    import datetime
    import string
    
    f = io.open("c:/pasta/teste.csv")
    
    linhas = f.readlines()
    
    f.close()
    
    fout = io.open("c:/pasta/teste_out.csv", "w")
    
    for l in linhas:
        dados = l.replace('\n', '').strip().split(";")
        dt1 = datetime.datetime.strptime("{0} {1}".format(dados[0], dados[1]), "%Y/%m/%d %H:%M")
        dt2 = datetime.datetime.strptime("{0} {1}".format(dados[2], dados[3]), "%Y/%m/%d %H:%M")
    
        if dt2<dt1:
            dt2 = dt2 + datetime.timedelta(days=1)
            dados[2] = dt2.strftime("%Y/%m/%d")
    
        print dt1
        print dt2
    
        fout.write(string.join(dados, ";") + "\n")
    
    fout.flush()
    fout.close()

     

     

  8. Seu servidor está exposto para acesso fora da rede local (ou seja, pela internet)? Tive um problema parecido, só que no meu caso foi um usuário que foi criado com um nome estranho e o usuário postgres deixou de ser superusuário. Creio que tenha sido um bot ou usuário mal intencionado, pois o mesmo se apossou do banco. Fiz backup, desinstalei a versão que tinha, instalei uma versão mais recente (colocando agora uma senha mais segura) e restaurei o banco. Recomendo fazer o mesmo e se for o caso de acesso externo, coloque uma senha mais segura.

  9. Sabendo que o primeiro (e único par) primo é 2, basta testar (if) o resto da divisão (operador %) do número informado, por todos os primos (laço for) até a raiz quadrada dele (math.sqrt()), se o resultado é diferente de zero para todos (operador & ou and) ele é primo e você conta. Estão todas as dicas aí, basta pesquisar e juntar.

  10. Você tem dois prints no código, um escreve a tabuada e o outro escreve o retorno da função chamada para imprimir a tabuada. Então ou você retorna a tabuada e imprime dentro do loop ou deixa de imprimir no loop o retorno dela (que é None). A segunda opção é só retirar o "print(n1)".

    Abraços!

     

  11. Como a mensagem de erro sugere, o problema está na identação (os espaços ou TABs na frente de cada linha). Em outras linguagens você pode colocar espaços a vontade, mas em Python eles precisam estar alinhados, porque é assim que o compilador sabe o quê pertence a o quê. Revise os espaços (ou TABs) que você dá no início de cada linha, porque está extremamente confuso (eu ia tentar consertar, mas realmente não entendi quais os ifs que realmente estão aninhados).

    Abraços!

  12. Não sei se entendi muito bem o que você quer não, mas se fosse para escrever na TextBox2 o quê estiver escrito na TextBox1, parecendo que está sendo digitado, eu faria o seguinte:

    TextBox2.Focus()
    
    For Each c As Char In TextBox1.Text
        SendKeys.Send(c)
        Threading.Thread.Sleep(200)
        Application.DoEvents()
    Next

    Espero ter ajudado!

  13. Você pode fazer isso percorrendo os números da lista e verificando qual é maior que o digitado, e utilizando o método insert para inserir o mesmo no lugar deste ("empurrando" o restante para frente), como a seguir:

    lista = []
    
    for x in range(8):
        n = int(input("Digite um número inteiro: "))
    
        inseriu = False
        for i in range(len(lista)):
            if n<lista[i]:
                lista.insert(i, n)
                inseriu = True
                break
    
        if not inseriu:
            lista.append(n)
            
        print(lista)

    Certo? ;)

    Abraços!

×
×
  • Criar Novo...