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

    Pergunta Besta

    Não, o que você faz é formatar o valor para ter duas casas decimais na saída, ou seja, na hora da impressão (na tela). Você pode fazer a mesma coisa em VB: Dim d1 As Double = 2 Dim d2 As Decimal = 2D Dim s1 As Single = 2 MessageBox.Show(d1.ToString("0.00")) MessageBox.Show(d2.ToString("0.00")) MessageBox.Show(s1.ToString("0.00")) Certo? Graymalkin
  2. Graymalkin

    Socorro?

    Se sua intenção é abrir a janela, você deveria fazer: dim j as new FrmSobre j.Show() Certo? Graymalkin
  3. Isso porque criou-se um atalho que foge a regra. Como strings são *muito* utilizadas, seria muito chato ter que ficar fazendo... string s1 = new String(new char[] {'G', 'r', 'a', 'y', 'm', 'a', 'l', 'k', 'i', 'n'}); ... onde poderia-se fazer apenas: string s1 = "Graymalkin"; Vale notar que somente strings é que possuem esse "atalho", devendo todos os demais tipos referência serem inicializados com o operador new. Abraços, Graymalkin
  4. Ponha o datagrid so pra testar. depois apague. Será que eu não fui claro a respeito disso...? É só mesmo para testar, para você poder *ver* qual é o último registro *do* recordset e conferir se é realmente o que você está querendo/imaginando. Abraços, Graymalkin
  5. Graymalkin

    For Each Em Arquivos

    Você não está executando isso imediatamente após digitar o último caracter está? Pode ser que entre a seleção da opção no menu e o fim da digitação na célula não esteja ocorrendo a atualização da DataTable. Abraços, Graymalkin
  6. Sim, você pode utilizá-las sem o recordset estar ligado a uma DataGrid. Eu só sugeri isso porque fica *mais fácil de visualizar* o conteúdo do recordset. Abraços, Graymalkin
  7. Graymalkin

    For Each Em Arquivos

    Sim, foi em um botão normal. E deu certo. Abraços, Graymalkin
  8. Graymalkin

    Arquivos

    Comecei a fazer, mas ainda não terminei. Mas, foi bom você me lembrar (porque eu já tinha esquecido... ). Abraços, Graymalkin
  9. O Visual Web Developer é direcionado a .NET Framework 2.0. Ainda não utilizei ele, mas creio que deva ser semelhante ao ASP.NET Web Matrix, que era direcionado a .NET Framework 1.1. Experimente este e veja se tem o que você precisa. Mas, não seria mais simples você procurar um outro provedor que dê suporte a .NET Framework 2.0? Abraços, Graymalkin
  10. Dê uma olhada neste tutorial e veja se ele lhe é útil: http://www.desenvolvedores.net/modules.php...=article&sid=27 Abraços, Graymalkin
  11. Sim, estruturas são tipos valor. Não sei se você já reparou, mas System.Int32 é uma struct, já System.String é uma classe. De fato, a diferença entre uma estrutura e uma classe é justamente que o objetos da primeira são "valores" e objetos da segunda são "referências". Nem me lembrei disso (de que estruturas também são objetos complexos) quando falei "já um tipo referência é um objeto mais complexo e que não pode ser representado por apenas um valor". Mea culpa! Abraços, Graymalkin
  12. O MoveLast vai para o último registro do recordset, porém o último registro da tabela pode não ser exatamente o último do recordset já que eles podem estar em uma ordem diferente. Experimente colocar uma DataGrid no form e atribuir o recordset utilizado à propriedade DataSource dela. Verifique então quais os registros mostrados e veja se o último realmente é o que você espera. Abraços, Graymalkin
  13. Sem problemas. Length e Count servem ao mesmo propósito, porém o primeiro é utilizado no lugar de comprimento ou extensão e o segundo no sentido de contagem ou quantidade (isso no idioma Inglês, obviamente). Abraços, Graymalkin
  14. Existe uma sutil diferença entre não ter um valor e ter o valor nulo. Um objeto int declarado ao qual não foi atribuído valor algum, não poderá ser utilizado, uma vez que é o valor que define o objeto. Essa é a diferença entre um tipo valor e um tipo referência. Ou seja, o próprio valor (10, true, 2.3, etc.) é o objeto. A prova disso é você conseguir fazer algo do tipo... Console.Write((2).ToString()); ... onde eu estou chamando o método ToString() do objeto-valor inteiro 2. Já um tipo referência é um objeto mais complexo e que não pode ser representado por apenas um valor. Por isso ele é alocado em uma parte qualquer da memória e é feita apenas uma referência a ele. Neste caso sim, essa referência pode ou não ser nula. Concluí-se então que null não é um valor, por três principais motivos. Primeiro que é uma palavra-chave (keyword) da própria linguagem, designando algo nulo. Segundo que não dá pra fazer o que fizemos com o 2 acima... Console.Write(null.ToString()); ... e terceiro porque se ela designa algo nulo, então ela não é um objeto (até porque todo objeto descende de System.Object e tem pelo menos o método GetType()). Certo? Graymalkin
  15. Graymalkin

    For Each Em Arquivos

    Fiz esse teste aqui e funcionou perfeitamente. Você está utilizando isso em algum evento da própria DataGrid? Abraços, Graymalkin
  16. "int y;" não guarda valor na memória para y. Guardaria se fosse "int y = new int()" Aí sim os 32 bits estariam "guardados" para y. Acontece que sendo um objeto, a memória de y não é alocada logo na simples declaração, pois este precisa ser inicializado. Aí você pode fazer de duas formas. int y = new int(); // aloca 32 bits para y e o inicializa com o valor 0 ou int y = 12; /* aqui você está usando uma 'short form' do que seria int y = new int(); y = 12; -> o que você também pode fazer */ Null então é valor ou não é? Sei lá É, eles até tentam fazer com que não nos preocupemos com administração de memória, mas está nas nossas veias Fazer... int x; Console.Write(x); ... vai resultar em erro porque não foi atribuído um valor para "x". Mas ele não é nulo, porque C# dá um erro de compilação, ou seja, você nem vai chegar a executar o programa. E, nesse caso, o VB.NET tem um comportamento diferente: Dim x As Integer Console.Write(x.ToString()) Vai ser mostrado o valor 0, porque o valor padrão de um inteiro não inicializado. Certo? Graymalkin
  17. Até aqui o Rodrigo já explicou no outro post. Então, vou explicar o restante. Exatamente. Porque 110 é um valor decimal (cento e dez) e não um valor binário (um um zero). Portanto, 110 (cento e dez) vai ser 1101110 em binário. E deslocando-os para a direita (>>) você terá 0110111, que é justamente 55 em decimal. Não, conforme o que eu disse acima. No caso, 6 >> 1 é 3. Isso porque deslocar os bits para a direita resultará em 011, que é 3 em decimal. Exato. Não, no caso seria 2 << 1. Ou seja, você estaria deslocando todos os bits uma posição para a esquerda e a nova posição seria preenchida com 0. Acho que no outro post eu falei como se deslocasse apenas o primeiro bit, mas são todos eles que são deslocados. Por isso, é que você deve ter feito confusão. Você pode utilizar só o operador "is", mas vai ser meio redundante (o próprio compilador vai te avisar isso). Para obter um comportamento semelhante ao do TypeOf você pode utilizar o método GetType() que todo objeto possui. Abraços, Graymalkin
  18. Graymalkin

    For Each Em Arquivos

    Mesmo assim, você escreveria tudo na mesma linha, porém a última coluna só estaria presente na DataGrid e não na DataTable. Como você preenche a DataGrid? Você só cria uma DataTable e referencia ela na propriedade DataSource da DataGrid? Abraços, Graymalkin
  19. Graymalkin

    For Each Em Arquivos

    Sim, então não existe essa possibilidade. Mas, pensei em outra coisa. A DataGrid só tem mesmo as colunas da DataTable? Ou seja, você não estaria acrescentando manualmente uma coluna na DataGrid, fora as existentes na DataTable? Graymalkin
  20. Cada linha (registro) da DataTable é representado por um índice que começa de 0. Ou seja, o primeiro registro é 0, o segundo é 1, o terceiro é 2, e assim por diante. O mesmo ocorre com as linhas dos dados exibidos na DataGrid. E o mesmo se dá com as colunas. Por exemplo... Dim dt As DataTable = dgHexa.DataSource Dim linha As Integer = dgHexa.CurrentCell.RowNumber Dim coluna As Integer = dgHexa.CurrentCell.ColumnNumber dt.Rows(linha)(coluna) = "teste" ... vai definir a coluna "coluna" na linha "linha" da DataTable como "teste". E isso vai ser refletido na DataGrid. Sacou agora? Graymalkin
  21. Graymalkin

    For Each Em Arquivos

    Não, é um caracter cujo código ASCII/ANSI é 0. O espaço em branco é o 32. Abraços, Graymalkin
  22. A .NET 2.0 introduziu a possibilidade de atribuir um valor nulo aos tipos que são valores (como Int32, Boolean, Double, etc.), criando os Nullable Types, utilizando o conceito de Generics. Antes, somente tipos que são referências podiam ter valores nulos (null em C# e Nothing em VB.NET), como era o caso de System.String. Fazer... int x = null; int b = null; MessageBox.Show(x.ToString()); MessageBox.Show(b.ToString()); ... em C# resulta em erro porque um int não pode ter um valor nulo. Fazer... Dim x As Integer = Nothing Dim b As Boolean = Nothing MessageBox.Show(x.ToString()) MessageBox.Show(b.ToString()) ... em VB.NET não resulta em erro, mas x e b passam a ter os valores padrões de seus respectivos tipos (no caso, 0 e False). Invocando um erro ou não, o caso é que não temos como definir um valor nulo para estes tipos. Já para uma string isso é valido... string s = null; MessageBox.Show(s.ToString()); ... e vai resultar em um erro na segunda linha, já que o objeto é nulo. Com os Nullable Types passou a ser possível atribuir um valor nulo à qualquer tipo que é um valor. Por isso pode-se fazer: C# int? valor; VB.NET Dim valor As Nullable(Of Integer) Com a possibilidade de atribuir-se um valor nulo a um tipo valor é importante que se possa *testar* se um objeto tem um valor ou não (ou seja, se é nulo). Um caso comum seria atribuir um Nullable Type a um tipo comum: int valor2 = valor; Note que "valor2" não é nullable, mas "valor" pode ser (no exemplo acima, consideremos que é). A atribuição acima então estaria errada e deveria ser feita da seguinte maneira: int valor2 = valor ?? 0; Ou seja, se "valor" for nulo, então será retornado "0". Caso contrário, será retornado o valor de "valor". Em VB.NET, se não me engano, isso pode ser feito assim: Dim valor2 As Integer = Iif(valor.HasValue, valor, 0) Certo? Graymalkin
  23. De fato, o Variant não pode ser comparado ao Object. O primeiro é apenas um tipo suficientemente grande para acomodar qualquer outro tipo, mas não rola a herança (o que acontece com o segundo em relação aos outros tipos). Bem-vindo novamente, Aragorn... ops... rodfraga! Abraços, Graymalkin
  24. Graymalkin

    For Each Em Arquivos

    Tem certeza de que não existe algum chr(0) entre os caracteres? Porque você está criando um arquivo texto e acho que este tipo de caracter iria interromper a gravação. Bom, é só um palpite. Abraços, Graymalkin
  25. Então você teria também que "editar" os registros e não apenas inserí-los, como você está fazendo. O que você tem que ter em mente é que o "dt" é um DataTable, ou seja, é uma tabela onde os registros são armazenados em linhas e colunas fixas. Supondo que hajam 10 colunas para cada linha, se o usuário posicionar a seleção na 5ª coluna de uma linha qualquer e mandar preencher o alfabeto dali em diante, você mandará preencher as colunas 5, 6, 7, 8, 9 e 10 e depois pular para a próxima linha. Na próxima linha, obviamente, ele vai preencher todos as colunas. E assim por diante até que o alfabeto acabe. Sacou? Graymalkin
×
×
  • Criar Novo...