Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. Graymalkin

    Explicação

    Não, por quê seria? :huh: A verificação é feita com os primos menores ou iguais a raíz quadrada do número. E 7 não é menor do que 5,38. Abraços, Graymalkin
  2. Graymalkin

    Calculo

    entendi, tipo se ela usa uma funcao de outra dll? não tem um jeito de descobrir isso? A maneira que me ocorre é copiar só ela para outro computador limpo (que não tenha nada instalado, exceto o sistema operacional) e executar um programa que utilize-a. Se der algum problema é porque ela precisa de alguma outra coisa (que talvez você ainda não tenha como saber qual é), mas se der tudo certo é porque dá pra distribuir ela normalmente (mas, é claro, podem haver questões legais a respeito dessa distribuição). Se a DLL for registrável com o RegSvr32 (mas, acho que esse não é o caso da DLL do VBA) e tiver alguma outra dependência é possível que no momento do registro dê problemas. Abraços, Graymalkin
  3. Graymalkin

    Explicação

    Bom, ele não mostra exatamente os números primos, porque 1 *não* é primo. Tirando isso, o que ele faz é um loop de 1 a 100 (que é o primeiro While) e cada iteração (loop) ele incrementa a variável "divisor" até chegar no número atual, e assim conta quantos divisores o número (do primeiro loop) tem. Para saber quando o número é divisível ou não é que se utiliza o operador Modulus (%) que retorna o resto da divisão. Se o resto for zero, é porque a divisão é exata, portanto o número é divisível pelo outro. Existe uma ténica melhor para descobrir os números primos, já que o próximo primo não vai ser divisível por nenhum dos outros primos até a sua raíz quadrada. Ou seja, para saber se 29 é primo basta testar se ele não é divisível, simultaneamente, por 2, 3 e 5 (já que a raíz quadrada de 29 é 5,3851648071345). Note que só será necessário testar 3 divisores, enquanto que no seu código acima é necessário testar 29 divisores. E, economia de iterações significa maior velocidade, é claro. Abraços, Graymalkin
  4. Graymalkin

    Calculo

    Não, não. Você não entendeu o que eu disse. Eu *não* cheguei a utilizar a notação polonesa para criar a função. O que eu disse foi que ela facilitaria muito o trabalho. Calculadoras da HP, por exemplo, utilizam a notação polonesa reversa (http://en.wikipedia.org/wiki/Reverse_Polish_notation) para realizar estes cálculos. E, aliás, é possível que o Eval() do ScriptControl também utilize essa notação internamente. Quis dizer que para este método é necessário distribuir a DLL do VBA (VBA5.DLL ou VBA6.DLL). Não sei se esta DLL depende de outras, mas se for o caso fica meio difícil de distribuí-la. Abraços, Graymalkin
  5. Simplesmente fazendo: principal.rtbmodif.Text = "texto" Sendo que em "principal" deve estar uma referência ao form que é criado automaticamente (que não é você que cria). E para colocar esta referência é que você deve fazer (no lugar onde o form principal chama o secundário): abrene = new nex() abrene.principal = me abrene.Show() Certo? ;) Note que é a mesma coisa que fiz acima, porém agora com os nomes que você deu. Graymalkin
  6. Graymalkin

    Calculo

    Dê uma olhada aqui: http://en.wikipedia.org/wiki/Polish_notation Tem a versão em Português também, mas não está completa. Ele executa qualquer código VBScript (e acho que já JavaScript também) que você passar para ele (o que inclui expressões para cálculo). Sim, acha. Dê uma olhada na terceira pergunta do usuário e na resposta que tem lá embaixo nesta página: http://www.codecomments.com/archive293-2004-7-243822.html Não, não. Possuindo o Python e a extensão PyWin32 instalada, você poderia fazer o seguinte no VB... set py = CreateObject("Python.Interpreter") valor = py.Eval("(5*3)/2+20") msgbox valor ... o quê, na minha opinião, também é bastante prático. E é possível executar quaisquer outros códigos em Python desta maneira (algumas, como instruções, requerem o uso do método Exec ao invés de Eval). É desta maneira que eu desenvolvia sistemas híbridos de VB e Python (algumas rotinas eram criadas neste último e utilizadas no primeiro). De fato, o ScriptControl é bastante prático. Mas, a solução em Python eu também acho que é (além de ter a vantagem de disponibilizar todo o poderio de Python para a sua aplicação - mas, é claro, isso é um "extra" já que a questão aqui é como desenvolver a fórmula, o que o ScriptControl faz muito bem também). Certo? ;) Graymalkin
  7. O objNetAdapter ali deve ter alguma propriedade que te permita identificar qual é o adaptador que você quer mudar o IP. É preciso olhar as propriedades dele (se ele for criado em tempo de execução você pode utilizar um Watcher para isso). Abraços, Graymalkin
  8. CDbl() e CInt() fazem o que você quer, ou seja, converter uma string em número (no primeiro caso um Double e no segundo um Integer). Certo? ;) Graymalkin
  9. Strider, até fiz o teste aqui por desencargo de consciência, mas realmente acontece o que eu disse (para nossa sorte!). E tanto faz o jeito de escrever o "VBScript". Abraços, Graymalkin
  10. Graymalkin

    Pilha Do So

    Ih... heheheh... complicou de novo. Você quer ordenar a pilha? Mas, ordenar pelo quê? Você poderia dar um exemplo prático de como funcionaria essa pilha do SO? O que entra, o que sai, bláblá...; qualquer exemplo serve, só pra ter um idéia. Abraços, Graymalkin
  11. Obrigado pela parte que me toca, e que bom que pude te ajudar! :D Precisando, 'stamos aí. Abraços, Graymalkin
  12. Graymalkin

    Erro No Insert

    Veja se este artigo do Tio Macoratti te ajuda: http://www.linhadecodigo.com.br/artigos.asp?id_ac=147 Abraços, Graymalkin
  13. Graymalkin

    Calculo

    Hummm... eu *acho* que ele quer dizer colocar algo como "(5*3)/2+20" na textbox e o VB efetuar o cálculo a partir da string. Se for o caso, eu já fiz isso de quatro maneiras diferentes: 1 - Criando minha própria função para percorrer a string e fazer os cálculos 2 - Utilizando o método Eval do Microsoft Script Control 3 - Utilizando a função EbExecuteLine da DLL do VBA 4 - Criando um objeto Python.Interpreter e passando a conta para ele fazer As mais práticas com certeza são a segunda e quarta. A primeira foi uma tarefa realmente árdua (porque na época eu ainda não conhecia a Notação Polonesa) e a terceira demandou um certo tempo até descobrir como obter o valor (a variável utilizada dentro do código deve ser pública). Ok? ;) Graymalkin
  14. Porque você está criando um *novo* form1 ao invés de utilizar um já existente. O form1 abre o form2 primeiro, certo? Então, você poderia fazer isso: dim f2 as new form2() f2.principal = me f2.Show() Note que estou considerando que você declarou aquele "principal" no form2 tal qual você fez acima. A partir deste momento, no form2 você vai poder utilizar o "principal" para se referenciar ao form1. Certo? ;) Graymalkin
  15. Graymalkin

    Pseudo Código

    Aí vai: nome = raw_input("Digite um nome:") n = int(raw_input("Digite um valor inteiro:")) if n>0 and n<=10: for i in range(n): print "Olá, %s." % nome print "Fim." else: print "Erro nos dados fornecidos." Certo? ;) Graymalkin
  16. :lol: Rsrsrs... se você não dissesse isso, *com certeza* eu iria fazer a pegunta. Eu não entendo nada desse negócio de medição (a não ser o que dá pra medir com uma régua ou uma trena... :D - me veio a mente agora eu medindo quanto a Sheila Carvalho tem de busto e de quadril... putz, só em sonho mesmo!!!! Hehehehehe!), portanto fiz um exemplo básico que calcula o tamanho de um retângulo (ou quadrado) de uma figura que está em uma picturebox no form. Note que a imagem (que também está no exemplo) foi feita no Paint e tem um fundo branco e só o retângulo lá. Você pode baixar o exemplo aqui: http://www.gs.kitbr.com/stuff/Exemplo_Medida.zip Se for algo mais complicado (o que eu creio que seja), dê mais detalhes que a gente tenta arrumar uma solução. ;) Abraços, Graymalkin
  17. Este LimpaTela() é chamado no evento Load do formulário? Se for, realmente vai dar problema em focar uma textbox, porque o form ainda está sendo carregado. Você tentar utilizar o evento Activate, se for o caso. Abraços, Graymalkin
  18. Entendo, é só que, de posse do programa de instalação, até mesmo uma criança de 8 ou 9 anos de idade (que já sabe ler, é claro), conseguiria instalar. :rolleyes: Entendo. Existe o componente "Adobe Acrobat 7.0 Browser Control Type Library" aqui na minha lista de componentes para o VB, mas acho que ele só deve aparecer porque o Acrobat está instalado aqui. Se for o caso, também não serviria porque o caboclo que não consegue instalar o PrimoPDF não vai conseguir instalar o Acrobat... (mas uma criança de 8 ou 9 anos, com instruções por escrito, conseguiria... é claro). Abraços, Graymalkin
  19. Graymalkin

    Pilha Do So

    Hummm... está melhorando! :D Só para fica mais claro ainda: você sabe qual seria o caso trivial (e não está conseguindo implementar) ou é justamente isso (qual é o caso) que é a sua dúvida? Espero estar ajudando! Abraços, Graymalkin
  20. Graymalkin

    Método Substring

    Bom, se você quer realmente, pegar de 5 em 5, você deveria utilizar um Step no For... Next, não? Repare também que o índice da string começa de 0 e não de 1. Veja: Dim a As String = "Joao subiu no pé de feijão" Dim pedaço As Integer For i As Integer = 0 To a.Length Step 5 If i + 5 > a.Length Then pedaço = a.Length - i Else pedaço = 5 End If Dim b As String = a.Substring(i, pedaço) Console.WriteLine(b) Next Certo? ;) Graymalkin
  21. Graymalkin

    Dll Num Projeto Web

    Desde que tenha sido feita uma referência a essa DLL no projeto, sim, vai funcionar. No .NET não tem mais aquele lance de ter que "registrar" a DLL, como acontecia com as DLLs que usávamos no ASP e no VB, por exemplo. Abraços, Graymalkin
  22. Graymalkin

    Erro No Insert

    No caso, o segundo parâmetro passado para o construtor de SqlCommand, deveria ser um objeto SqlConnection e não uma string, como você está fazendo. Ou seja, aquele "Conexao1" não deveria ser uma string. Não utilizo o SQL Server, mas acho que aquela string que você passou serviria para abrir a conexão, né? Se servir, você poderia fazer isso: SqlConnection conexao1 = new SqlConnection("server=localhost;database=TABELA;User ID=sa"); conexao1.Open(); string sql = "INSERT INTO produtos (produtos) VALUES ('" + lb_produto.Text + "')"; SQLCommand cmd = new SQLCommand(sql, conexao1); cmd.ExecuteNonQuery(); Certo? ;) Graymalkin
  23. Sim, porque MessageBox só existe dentro do namespace System.Windows.Forms. Você deve fazer uma referência a essa DLL e depois importar o namespace. Se você estiver no VS2002 ou 2003 é só clicar com o botão direito em References (lá na janelinha "Solution Explorer") e escolher Add Reference. Daí, dê um duplo-clique no arquivo System.Windows.Forms.dll na lista para que ele vá para as referências. No caso do VS2005, você dá um duplo-clique em "My Project" (também na janelinha "Solution Explorer") e escolha a opção References (do lado esquerdo da tela). Clique no botão Add e escolha System.Windows.Forms.dll na lista. Depois marque a caixa System.Windows.Forms na listbox localizada na parte inferior da tela. E, por fim, no programa inclua (antes da função Main() e fora do módulo, na primeira linha da janela, e isso vale tanto para o VS2002, 2003 ou 2005): Imports System.Windows.Forms Ok? ;) Graymalkin
  24. Qual shell script? Seria bom informar para que o pessoal possa dar alguma solução mais específica. Abraços, Graymalkin
  25. Não é da propriedade Text das caixas de texto que você *obtém* os valores? Então, é nela que você também *define*. Portanto, no caso bastaria fazer... SomaTotal.Text = AreaTotal ... naquela rotina que você mostrou. Certo? ;) Graymalkin
×
×
  • Criar Novo...