Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Posts postados por Graymalkin

  1. Mas já experimentou remover o Warsaw (temporariamente) pra ver se realmente resolve? Porque o lance de corromper a base é estranho, não poderia ser um problema no disco rígido?

    No meu caso, criei uma máquina virtual (VMWare Player) com o Windows 7 e nela instalei o Warsaw, então se eu preciso usar o internet banking da Caixa (no meu caso) eu vou pela máquina virtual.

    Abraços!

  2. Agora sim dá pra ver qual é o problema. Não se pode fazer o tipo de comparação que você está tentando no elif:

    elif 0 <= temp <= 20:

    O correto é:

    elif (temp > 0) & (temp <= 20):

    Toda operação desse tipo precisa de 2 elementos e um operador, então no caso fazemos as duas comparações e depois realizamos uma operação AND (E) entre eles, ou seja, podemos ler como está escrito: "SE (temp for maior que 0) E (temp for menor que 20)". O programa completo seria:

    temp = int(raw_input('Entre com a temperatura:'))
    
     if temp <= 0:
        print 'Congelando...'
      elif (temp > 0) & (temp <= 20):
        print 'Frio'
      elif (temp >= 21) & (temp <= 25):
        print 'Normal'
      elif (temp >= 26) & (temp <= 35):
        print 'Quente'
      else:
        print 'Muito quente!'

    Outro detalhe é que raw_input() retorna uma string, então você não teria como comparar com inteiros, por isso a função int() para transformar o que for lido em um inteiro.

    Certo? ;)

  3. O que você pretendia fazer seria:

    if type(x)==int:

    Porém, sua ideia não vai dar certo, já que em Python qualquer número dividido por um inteiro resultará em um inteiro. E caso você troque...

    x = numero/2

    ... por:

    x = numero/2.0

    Terá sempre um float, independente do resultado.

    O que você realmente precisa é saber se o resto da divisão por 2 é zero (ou seja, não houve resto), assim saberá se o número é par. Isso você pode fazer através do operador % (modulus) que retorna o resto da divisão de um número pelo outro:

    numero = input("digite o numero:") 
    
    if numero%2==0:
        print("seu numero é par")
    else:
        print("seu numero é impar")

    Certo? ;)

    Abraços!

  4. 12 horas atrás, VitorM disse:

    Estou utilizando o C#, o problema é que são varias tabelas, algumas possuem mais de 2 milhões de linhas, aí o Excel é limitado(suporta um pouco mais de 1 milhão) e não consigo exportar tudo para o CSV, abraços!

    Ah, se é com C# então é tranquilo pra acessar os DBFs usando um DataReader, assim você não precisa obter as 2 milhões de linhas de uma vez só. Dê uma pesquisada a respeito.

    Abraços!

  5. Bom, não acho que exista algo que faça isso automaticamente, então provavelmente vai depender da linguagem que você usa para acessar ambos (os DBFs e o Postgres) e fazer a migração manualmente. Há 11 anos atrás eu fiz isso, usando .NET (no caso, ADODB para ler os DBFs e Npgsql para acessar o Postgres). Hoje em dia eu faria de um jeito mais prático, transformando os DBFs em arquivos CSV (texto separado por ponto-e-vírgula), o que se pode fazer no Excel, e então poderia fazer minha própria rotina de importação (na linguagem que eu acessaria o Postgres) ou poderia usar o comando COPY FROM do próprio Postgres, supondo que a estrutura da tabela fosse igual.

    Qual será a linguagem que você estará usando para acessar o Postgres?

    Abraços!

  6. Qual o erro mostrado? De qualquer maneira, acho que faltam as aspas simples ao redor do que é procurado, se o campo é do tipo texto. Então experimente alterar a seguinte linha:

    sqlstr = "SELECT FUNCAO FROM FUNCIONARIO WHERE NOME = '" & TextNome.Text & "'"

    E veja se dá certo.

    Abraços!

  7. No meu caso, tive que remover o Warsaw e/ou GBP, porque já não aguentava mais todo dia o servidor parando. Criei uma máquina virtual com o VMWare e, quando precisam usar a Caixa Econômica, entram por ela (onde tem o danado do componente de segurança instalado). Outro dia tirei de um computador de um amigo, que estava reclamando que a máquina estava uma carroça, e ele disse que o computador ficou outra coisa após a remoção. Em suma, remova o Warsaw/GBP e seja feliz!

    Abraços!

  8. Olá,

    Na verdade, você só precisa testar o número desejado com os primos abaixo da sua raíz quadrada. Com o código abaixo você encontrará os primos (de 3 a 100), bastando definir o primeiro (e único par) que é o 2:

    import math
    
    primos = [2]
    
    for i in range(3, 100):
        ehprimo = True
        for p in primos:
            if p>math.sqrt(i):
                break
            else:
                ehprimo = ehprimo and (i%p!=0)
            
        if ehprimo:
            primos.append(i)
    
    print primos

    Beleza?

    Abraços!

     

  9. Com VBScript fica meio difícil, não sei se você encontrará algo assim. Se pelo menos fosse com .NET (VB ou C#), existe a biblioteca iTextSharp, que te permite fazer isso. Para essa biblioteca tenho um exemplo de uma função que extrai o texto do PDF.

    Abraços!

  10. Entendi, e tenho uma outra dica que deve te auxiliar neste caso também: no Google Chrome, clicar com o botão direito no elemento da página e escolher "Inspecionar". Esse recurso é bem prático e rápido para se encontrar o nome ou tag de um determinado elemento, e depois utilizar essa informação com o Selenium.

    Abraços!

  11. É, esse tipo de exercício não é o ideal para se entender o conceito do while, porque na verdade ele ficaria bem melhor com o for. O while é necessário quando você *não* sabe a quantidade ou quando a lista, sob a qual se itera, pode ser modificada durante o loop.

    Neste exercício você sabe a quantidade de convidados (é a primeira coisa que se pergunta). Uma situação na qual seria necessário usar o while seria se o exercício pedisse para você solicitar os nomes dos convidados até que o nome fosse "X", quando então encerraria o loop. Neste caso você não sabe quantos serão, então enquanto (while) o nome for diferente de "X", leia o nome e jogue na lista.

    Abraços!

  12. Você não precisa usar uma string como acumulador, no caso você vai colocar todos os elementos em uma lista e usará um inteiro como indexador, onde lista[0] é o primeiro nome, lista[1] é o segundo e por aí vai:

    qt = int(raw_input("Digite a quantidade de convidados: "))
    
    i = 0
    
    lista = []
    
    while (i<qt):
        nome = raw_input("Digite o nome do %iº convidado: " % (i+1))
        lista.append(nome)
        i += 1
    
    i = 0
    
    while (i<qt):
        print "Nome do %iº convidado: %s" % (i+1, lista[i])
        i += 1

    Abraços!

  13. Provavelmente ele está gravando o arquivo como UTF-8 (Unicode) e não como ASCII, então experimente declarar estas constantes:

    Const OpenAsDefault = -2
    Const OpenAsUnicode = -1
    Const OpenAsUSAscii =  0

    E depois altere a linha...

    Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING)

    ... para:

    Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING, False, OpenAsUSAscii)

    Esse "False" aí é para não criar o arquivo caso o mesmo não exista. E experimente também o "OpenAsDefault" e "OpenAsUnicode" para ver se algum cria o arquivo como você precisa.

    Abraços!

×
×
  • Criar Novo...