-
Total de itens
8.257 -
Registro em
-
Última visita
Tudo que Graymalkin postou
-
Rsrsrsrs... de fato, a pergunta não está bem formulada. Mas, acho que ele quis dizer, "sites de torrent" ou "clientes de torrent". Se for site, experimente o http://www.torrentz.com/. E se for um cliente, experimente o BitComet. Abraços, Graymalkin
-
Quase sempre o erro de Object Required ocorre quando o nome de um objeto ou propriedade está escrito incorretamente. Ah, e você esqueceu de informar uma coisa muito importante: qual é a linha em que o erro ocorre? Abraços, Graymalkin
-
Eu acho que o verbo ali seria "COPIOU", não? :rolleyes: Graymalkin
-
Obrigado! :D Sim, ainda está complicado... rsrsrs. Mas, que tipo de "controle" você quer ter sobre o endereço? Abraços, Graymalkin
-
A diferença é basicamente que C++ tem suporte a um novo paradigma chamado Orientação a Objetos (o C era somente o paradigma procedural). É claro que com a OO chegam novos conceitos como polimorfismo, herança, interfaces, etc. Se você procurar na Net você encontra muito material sobre isso. Dê uma olhada neste tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=76280 Veja se ajuda. Abraços, Graymalkin
-
Ah, Ø£¡vë¡®'§®... estragou a surpresa do problema, se é que o caboclo ainda não tinha feito. :D Abraços, Graymalkin
-
Mas, o quê do que você disse acima aquele driver de impressora não faz? Você utiliza ele como uma impressora normal (ou seja, via objeto Printer) para escrever o que quiser (os dados da FlexGrid, por exemplo) e ele: grava o arquivo em disco e ainda abre o PDF com o Acrobat Reader, para o caboclo visualizar, e se quiser, imprimir. E não serve? Abraços, Graymalkin
-
Está faltando importar o namespace System.Data.SqlClient: using System.Data.SqlClient; Ou, se for uma página ASP.NET acredito que você possa fazer isso: <%@ Import Namespace="System.Data.SqlClient" %> Isso porque SQLCommand na verdade se chama System.Data.SqlCLient.SQLCommand, e para se referir a ele apenas pelo "primeiro" nome, você deve importar o "sobrenome" dele. Ok? ;) Abraços, Graymalkin
-
Qual o retorno de GeraListaRand()? void? Você quer escrever void na tela? Se void representa nada, como você vai escrevê-lo na tela? A mensagem de erro é bem explicíestá (pelo menos aqui no Dev-C++): invalid use of void expression. Certo? ;) Graymalkin
-
Faço minhas as suas palavras, Water. Abraços, Graymalkin
-
Opa, William, tá sumido, hein? :) Overflow do tamanho da pilha? Se for, por que não fazer uma pilha com alocação dinâmica? Uma lista circular serviria. Mas, explique melhor o que você quer dizer com "pilha do SO", porque eu não encontrei nada a respeito desse assunto. Abraços, Graymalkin
-
Mas, qual é o erro que ocorre? Novamente você está utilizando On Error GoTo, o que não é nada bom, uma vez que você não sabe qual o erro que ocorre. É importante notar que só utilizamos On Error GoTo *depois* que testamos a rotina e verificamos que não ocorre nenhum erro na correta utilização dela. Eu escrevo a rotina, sem qualquer tratamento de erro, e testo ela com valores corretos, ou seja, como eu faria, por exemplo, o cadastro do cliente. Se der tudo certo, então ok, agora sim posso incluir um tratamento de erro, porque pode acontecer alguma outra coisa que eu não pensei. Se der erro, então eu corrijo o erro até que a rotina fique perfeita, sob a minha perspectiva. Daí sim, posso incluir o tratamento de erro. Sacou? ;) Abraços, Graymalkin
-
Isso é uma ordenação do tipo bolha. Esse método de ordenação consiste em percorrer o vetor alterando a posição dos itens. Imagine as seguintes letras: D C B A Para colocá-las em ordem você pode utilizar a ordenação bolha. Nas iterações, você vai olhar se um elemento é menor que o outro e se for, vai trocá-los de posição. Então, na primeira iteração (loop) vai continuar a mesma coisa (isso porque D<D é falso). Na segunda também (D<C é falso), assim como na terceira e na quarta (D<B é falso e D<A também). Quando chegar a vez do C, logo o primeiro vai ser verdadeiro (C<D) então a ordem já passará para... C D B A ... e nas seguintes a condição será falsa (lembrando que eles trocaram de posição, logo será D<C, D<B e D<A). Chegando na iteração externa, o B trocará com C. E assim prosseguindo a cada troca... B D C A B C D A A C D B A B D C A B C D ... até por fim temos o vetor ordenado. Como você vê, este método de ordenação testa sucessivas vezes as mesmas condições (o que inviabiliza a utilização dele para vetores grandes), porém é o método mais simples de se fazer (você chega a ele sem gastar muitos neurônios, já que é uma ténica conhecida nossa). Certo? ;) Qualquer coisa, 'stamos aí. Abraços, Graymalkin
-
Ah, é esse o problema? Eu achei que fosse a comunicação. Bom, não dá pra eu te dizer qual seria o comando exatamente, porque eu não tenho o manual. Mas, por exemplo... 1- Caracter de início de comando: ESC (<1B>) 2- Indicador de comando: F (<46>) ... basicamente é fazer: c = Chr(27) & "F" Ou seja, basta você seguir a receita de bolo do que cada byte deve representar e fazer uma string para enviar (se não der para enviar a string toda - isso depende da forma como você comunica - você envia caracter por caracter). É só ter em mente que cada byte é um caracter. E que os números entre <> são os valores hexadecimais. Por exemplo, o primeiro byte na "receita" (que é o ESC) ele diz que o valor é 1B, e se você fizer... MsgBox &H1B ... você descobre que 1B em decimal é 27. Como devemos passar o caracter, é só utilizar a função Chr() para obter o caracter de código 27. Infelizmente, não sei o que ele quer dizer por "número de controle" e nem tenho a lista de comandos (e muito menos os parâmetros de cada comando), por isso não posso te passar um comando "completo". Certo? ;) Graymalkin
-
Existe uma impressora que você instalar no sistema e que te permite isso: http://www.primopdf.com/ Particularmente, eu acho isso muito prático. Abraços, Graymalkin
-
http://scriptbrasil.com.br/forum/index.php?showtopic=27313 http://scriptbrasil.com.br/forum/index.php?showtopic=62487 Já deu uma olhada nestes tópicos? Abraços, Graymalkin
-
Bom, ErrorCode não tem utilidade já que sempre retorna o mesmo código para qualquer erro. Então decidi olhar as outras propriedades e encontrei em Errors(0).SQLState uma maneira de diferenciar os erros. O código seria algo assim: Try 'aqui entra o seu código para adicionar o registro Catch ex As OleDb.OleDbException When ex.Errors(0).SQLState = 3022 MessageBox.Show("Chave-primária duplicada!") Catch ex As OleDb.OleDbException When ex.Errors(0).SQLState = 3200 MessageBox.Show("Registro relacionado em outra tabela! Não é possível excluí-lo sem primeiro remover a relação!") Catch ex As OleDb.OleDbException When ex.Errors(0).SQLState = 3201 MessageBox.Show("Não é possível inserir este registro porque existe uma relação entre as tabelas (e um valor informado não tem correspondente na outra tabela)!") Catch ex As OleDb.OleDbException MessageBox.Show(ex.Errors(0).SQLState) MessageBox.Show("Ocorreu outro erro qualquer: " & ex.Message) End Try Coloquei alguns exemplos, mas para você ver os outros códigos basta forçar o erro que o último Catch vai mostrar o código para você. Certo? ;) Graymalkin
-
Já tentou olhar a propriedade ErrorCode do objeto do Catch? Acredito que ela deva ter valores diferentes para diferentes erros. Daí você pode utilizar a cláusula When no Catch para diferenciar. Abraços, Graymalkin
-
Cara... foi só copiar e colar... *não* tive que mudar uma única linha: Function ToRomano(Valor) Dim aInteiros(13) Dim aRomanos(13) Dim i Dim Result aInteiros(0) = 1 aInteiros(1) = 4 aInteiros(2) = 5 aInteiros(3) = 9 aInteiros(4) = 10 aInteiros(5) = 40 aInteiros(6) = 50 aInteiros(7) = 90 aInteiros(8) = 100 aInteiros(9) = 400 aInteiros(10) = 500 aInteiros(11) = 900 aInteiros(12) = 1000 aRomanos(0) = "I" aRomanos(1) = "IV" aRomanos(2) = "V" aRomanos(3) = "IX" aRomanos(4) = "X" aRomanos(5) = "XL" aRomanos(6) = "L" aRomanos(7) = "XC" aRomanos(8) = "C" aRomanos(9) = "CD" aRomanos(10) = "D" aRomanos(11) = "CM" aRomanos(12) = "M" For i = 12 To 0 Step -1 Do While Valor >= aInteiros(i) Valor = Valor - aInteiros(i) Result = Result + aRomanos(i) Loop Next ToRomano = Result End Function Daí, utilizei: Debug.Print ToRomano(5) Debug.Print ToRomano(10) Debug.Print ToRomano(15) Debug.Print ToRomano(252) Certo? ;) Graymalkin
-
Boolean Vs. Byte
pergunta respondeu ao Denis Bittencourt Muniz de Graymalkin em Outras Linguagens de Programação
Um boolean com 2 bytes? Sim, já que este seria o tamanho ideal para ele. Um boolean com 2 bytes? Sim, já que o ideal seriam 8 bytes neste caso. Abraços, Graymalkin -
Você não captura o erro com um Try... Catch? Então, é só colocar ali a sua mensagem. Abraços, Graymalkin
-
Como prometido, segue um exemplo: #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct dado { char ID[3]; int tamanho; } Dado; typedef struct no { Dado value; no *next; } Lista; Lista *CriarNo(Dado valorinicial) { Lista *L = (no *)malloc(sizeof(no)); L->value = valorinicial; L->next = L; return L; } Lista *Adicionar(Lista *l, Dado elemento) { Lista *k = CriarNo(elemento); k->next = l->next; l->next = k; return k; } int main() { Dado x = {"p1", 2}; Dado y = {"p2", 3}; Dado z = {"p3", 20}; Lista *L = CriarNo(x); Lista *P = L; P = Adicionar(P, y); P = Adicionar(P, z); Lista *K = L; do { printf("%s = %i\n", K->value.ID, K->value.tamanho); K = K->next; } while (K!=L); system("pause"); } Note que criei três objetos do tipo Dado e os adicionei na lista. Em seguida percorri a lista exibindo os mesmos. É claro que no seu caso estes objetos virão do arquivo, mas você poderá utilizar as funções que criei acima (CriarNo() e Adicionar()). Certo? ;) Graymalkin
-
Eu também acho uma idéia legal. O William não aparece aqui faz um tempinho, então eu estou temporariamente como moderador desta sala também. Acho que daria para organizar um novo contest sim. Só não pode acontecer igual da outra vez, que só tivemos dois ou três participantes. Tem que ter mais gente para a coisa ficar bem competitiva. Já vou começar a pensar em um tema (se tiverem sugestões, é só postar!). Abraços, Graymalkin
-
A questão do tempo que o balão fica visível é configurada no sistema operacional (deve ter alguma chave no Registro para alterar isso). Mas, não encontrei nenhum jeito de fechar o balão via métodos do objeto. Pensei em utilizar as funções FindWindow e FindWindowEx para achar a janela e depois tentar mandar um WM_CLOSE para ela, mas a tentativa não teve sucesso (FindWindowEx, não sei porque, não encontra a danada...). Bom, se eu conseguir pensar em algo eu retorno. Abraços, Graymalkin
-
Boolean Vs. Byte
pergunta respondeu ao Denis Bittencourt Muniz de Graymalkin em Outras Linguagens de Programação
Processadores de 32 bits leêm a memória de 4 em 4 bytes, portanto o acesso a um Boolean (com 4 bytes) é mais rápido do que acessar um único byte (afinal de contas, quatro serão lidos mas apenas um será aproveitado). Se fossemos pensar pelo lado da economia, dá pra guardar um boolean em apenas um bit, mas as operações para chegar no bit seriam mais custosas do que ler um byte e mais ainda do que ler 4 bytes. Outra facilidade é a implementação de um boolean como um subtipo de um inteiro (o que acontece em Python, por exemplo). Abraços, Graymalkin