Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. Você quer criar uma textbox na tela na hora? Abraços, Graymalkin
  2. Graymalkin

    Data Alterada

    Só se você tiver a certeza de que o computador vai ser ligado, e que o seu programa sempre será executado, todos os dias (ou em intervalos regulares, como nos dias úteis). A idéia seria sempre gravar a data atual (em um arquivo texto ou algo do tipo) e no dia seguinte conferir se a data confere com o dia anterior +1. Mas, isso é extremamente falho (imagine que haja um feriado não esperado, por exemplo). Abraços, Graymalkin
  3. Graymalkin

    Tipagem

    Exato. No VBScript não tem como você criar dois chars e um int (não existem tipos, lembra? Aliás, só existe um tipo, que é o Variant), então não dá pra comparar desta maneira. O char em C é apenas um int com uma representação diferente, portanto somar dois chars é um comportamento natural. De qualquer forma, concordo com a idéia de que uma linguagem pode ser mais fortemente (ou fracamente) tipada do que outra, não necessariamente desmerecendo o título de fortemente (ou fracamente) tipada. Abraços, Graymalkin
  4. Graymalkin

    Tipagem

    Na verdade aí é um caso de conversão implícita. Enums têm seus elementos representando valores inteiros (ou outros tipos). VB.NET não faz essa distinção, sendo possível atribuir o valor ou o elemento da Enum (já que no fundo são a mesma coisa). Já C# faz. Por isso que eu prefiro o VB.NET ao C#. Ter a possibilidade de uma tipagem forte e com opção de late-binding (tipagem pato), sem ter que fazer uma pá de casts é bastante atraente, a meu ver. Realmente, está de parabéns! A segurança que um tipo não pode ser interpretado como outro. Não. A tipagem pato (duck-typing) é uma tipagem dinâmica na qual o tipo do objeto não é verificado em tempo de compilação, sendo somente em tempo de execução. A tipagem fraca já pode ser vista pela ótica do iSoron, de que um tipo não tem características que o caracterizem completamente, ou pela ausência de tipos (como é o caso de VBScript, por exemplo). Não, VB6 é fortemente tipada (possuindo algumas conversões ímplicitas) e tem um tipo chamado Variant que pode acomodar qualquer outro. A presença desse tipo, e a característica de que qualquer variável não declarada tem esse tipo, dão a sensação de tipagem dinâmica (ainda mais porque os operadores são definidos para funcionarem do mesmo jeito que seriam com os tipos reais). O recurso de late-binding também contribui para isso. Abraços, Graymalkin
  5. Graymalkin

    Soma De Datas

    E só somar um inteiro à ela: Dim d As Date d = Date + 15 Debug.Print d Certo? Graymalkin
  6. Graymalkin

    Data Alterada

    Você pode bloquear a alteração da data no próprio Windows. No Win9x isso pode ser feito renomeando-se o arquivo timedate.cpl (c:\Windows\System) para qualquer outro nome. No WinNT (2000/XP), nas diretivas de segurança dele já tem uma opção para isso. No Win9x o usuário vai poder continuar trocando a data pelo prompt, mas no WinNT isso também fica bloqueado. Abraços, Graymalkin
  7. Sim, é a herança (no VB.NET isso fica claro pela palavra-chave utilizada: Inherits). A herança consiste em dar à classe "filha" todos os membros (métodos, propriedades, campos, etc.) da classe "pai". Ou seja, tudo que existir na classe System.Windows.Forms.Form vai estar presente na classe MainForm, no caso acima. Porque forms *também* são classes. Você só vai ter acesso aos membros estáticos (static em C#, Shared em VB.NET) da classe. Para os membros de instância você precisa criar um objeto da classe (com o operador new em C#, ou New em VB.NET). Abraços, Graymalkin
  8. Isso deve ocorrer devido a diferenças de codepages (códigos de páginas). Ao que parece a .NET Framework define o codepage certo para os caracteres Unicode (aliás, as strings em C# e VB.NET são Unicode, enquanto que em C a representação usual é ASCII/ANSI). Abraços, Graymalkin
  9. Um alert() de JavaScript não é suficiente? Abraços, Graymalkin
  10. Graymalkin

    J2ee

    Já existe um tópico sobre isso: http://scriptbrasil.com.br/forum/index.php?showtopic=39875 Me desculpe então pelos links que postei em outros tópicos... ... já me acostumei a procurar determinados assuntos em Inglês, quase certo de que não acharia os mesmos em Português. Abraços, Graymalkin
  11. Graymalkin

    Arquivos

    Você está gravando por cima do original? Caso positivo, o que foi aberto primeiro já foi fechado quando a gravação é feita? Abraços, Graymalkin
  12. Graymalkin

    Arquivos

    Porque era o arquivo de teste que eu estava utilizando aqui, já que arquivos executáveis são binários. Claro que pode ser qualquer outro. Não precisa, porque o método Write() é sobrecarregado para aceitar Char também (e mais cerca de 13 outros tipos). Você disse que "não deu certo"... mas não disse o que exatamente não deu certo. O arquivo não foi gravado corretamente? Deu algum erro? Abraços, Graymalkin
  13. Graymalkin

    Arquivos

    Sim, o mundo agora é Unicode! Consegui aqui assim: Dim nomearq As String = "c:\teste.exe" Dim dt As DataTable = dgHexa.DataSource Dim f As FileStream = New FileStream(nomearq, FileMode.Create, FileAccess.Write) Dim bw As BinaryWriter = New BinaryWriter(f, System.Text.Encoding.GetEncoding(28591)) For Each linha As DataRow In dt.Rows For Each coluna As DataColumn In dt.Columns Dim b As Char = System.Uri.HexUnescape("%" & linha(coluna), 0) bw.Write(b) Next Next bw.Close() f.Close() MessageBox.Show("Ok!") O macete está na linha... Dim bw As BinaryWriter = New BinaryWriter(f, System.Text.Encoding.GetEncoding(28591)) ... na qual o GetEncoding(28591) retorna a codificação ISO-8859-1 (também conhecida como Latin-1 e é a mais utilizada por nós) que possui a representação de caracteres no esquema de 8 bits (256 caracteres). Estranhamente este encoding não está presente na lista de codificações disponíveis diretamente (como ASCII, UTF8, Default, Unicode, etc. listados em System.Text.Encoding). Certo? Graymalkin
  14. O interessante de se utilizar o curto-circuíto é que mesmo que o segundo operando possa gerar um erro o primeiro operando é que vai definir se ele vai ser executado ou não. Os dois casos abaixo gerariam erros se os operadores | e & fossem utilizados: int divisor = 0; int valor = 5; if ((valor>0) || ((valor/divisor)>0)) Console.WriteLine("Valor é maior que 0!"); No caso acima, o segundo operando tenta dividir um valor ("valor") por zero ("divisor"). Porém, como o primeiro operando vai ser desenvolvido para Verdadeiro, o segundo não vai ser executado. string s = ""; string[] elementos = s.Split(';'); if ((elementos.Length>1) && (elementos[1]=="qualquer coisa")) Console.WriteLine("É qualquer coisa!"); else Console.WriteLine("Não é qualquer coisa!"); Neste caso, o segundo operando tenta acessar a segunda posição (1) do vetor (e esta posição não existe), porém como o primeiro operando vai evoluir para Falso (o tamanho do vetor vai ser 1), o segundo não será executado. As palavras-chaves destes operadores ficam mais claras no VB.NET, já que "AndAlso" significa "E Também" e "OrElse" significa "Ou Senão" (semanticamente diferentes de "E" e "Ou"). Certo? Graymalkin
  15. O que você quer exatamente? Mostrar uma caixa de mensagem no cliente? Abraços, Graymalkin
  16. Graymalkin

    Subtrair Data

    Então experimenta assim: niver = #12/19/1988# hoje = now() diferenca = datediff("d", niver, hoje) msgbox(int(diferenca/365)) Só que aí não está sendo levado em conta os anos bissextos... acho que isso pode dar alguma diferença em datas mais avançadas. Abraços, Graymalkin
  17. O curto-circuito é testar apenas o primeiro operando, e de acordo com o valor dele testar ou não o segundo. Em uma operação And, se logo o primeiro operando for Falso nem é necessário testar o segundo para saber que o resultado será Falso (já que ambos devem ser Verdadeiros para que o resultado seja Verdadeiro). É isso que && e AndAlso fazem. O mesmo vale para uma operação Or, pois se logo o primeiro operando for Verdadeiro, o resultado será Verdadeiro (já que basta apenas um dos operandos ser Verdadeiro para que o resultado seja Verdadeiro). É isso que || e OrElse fazem. Certo? Graymalkin
  18. Graymalkin

    Arquivos

    Hummm... agora pode ser uma questão de codificação do arquivo (encoding). Se não me engano, ao criar o BinaryWriter você tem a opção de escolher um encoding. Você pode ir experimentando eles para ver qual dá o resultado correto. Estou um pouco atarefado no momento, mas assim que surgir um tempinho eu vejo isso aqui pra você. Só me lembre, se não eu esqueço. Abraços, Graymalkin
  19. Não, && e || têm curto-circuito, por isso são os equivalentes a AndAlso e OrElse do VB.NET, respectivamente. Certo? Graymalkin
  20. Graymalkin

    Chamar Outro Evento

    Isto é a *declaração* dela, *não uma chamada*. A chamada seria algo assim: Button1MouseDown(sender, botao, estadoshift, 0, 0); Sendo que o 2º e o 3º parâmetros são de tipos que não conheço (TMouseButton e TShiftState) por isso você vai precisar passar os objetos respectivos (ali representados por "botao" e "estadoshift"). Abraços, Graymalkin
  21. & = And http://msdn.microsoft.com/library/en-us/cs...andoperator.asp | = Or http://msdn.microsoft.com/library/en-us/cs...baroperator.asp ^ = Xor http://msdn.microsoft.com/library/en-us/cs...eoroperator.asp ~ = Complemento - Acho que não tem equivalente no VB.NET. http://msdn.microsoft.com/library/en-us/cs...rf~operator.asp Para uma lista completa: http://msdn.microsoft.com/library/default....rpoperators.asp Esse operador se chama "Modulus" é o resto da divisão de um número por outro. Que eu saiba não. Mas, a utilização de expressões regulares pode realizar a mesma função do operador Like. Dê uma olhada nestas páginas: http://msdn.microsoft.com/library/default....Expressions.asp http://msdn.microsoft.com/library/default....sionclasses.asp Abraços, Graymalkin
  22. Graymalkin

    Chamar Outro Evento

    Como você fez? E qual o erro que deu? Abraços, Graymalkin
  23. Exatamente, mas nesse caso eles nem parece que são "compartilhados". Abraços, Graymalkin
  24. Ali não é quanto ele precisa, mas sim quanto é necessário para uma performance razoável dele. Um computador com 32MB de memória executa a maioria dos programas, mas a performance não é legal (dada a baixa quantidade de memória, cria-se então a memória virtual, no disco rígido). Já com 64MB a coisa melhora um pouco, é claro. Por isso eu recomendei 64MB como mínimo (porque *eu* considero como o mínimo para executar qualquer aplicativo, mas isso *não* quer dizer que o mesmo não seria executado com 32MB ou até mesmo 16MB). Sacou? Para qualquer aplicativo do VB6 você vai precisar de mais de 8MB de memória (16MB ou superior já executa). Já tive mais de uma experiência em que programas em VB6 não executaram em computadores com 8MB. Abraços, Graymalkin
×
×
  • Criar Novo...