Ir para conteúdo
Fórum Script Brasil

Graymalkin

Veteranos
  • Total de itens

    8.257
  • Registro em

  • Última visita

Tudo que Graymalkin postou

  1. Qual o erro que dá? Em qual linha? E qual o código que você está usando? Abraços, Graymalkin
  2. Joaozava, Bom, o Adriano já respondeu para que servem os dois tipos de comandos. Agora, em relação a onde saber isso... bom, eu sei pelos "nomes" deles. Creio que nunca tenha lido efetivamente em algum lugar uma explicação sobre os mesmos. adCmdUnknown = Desconhecido (ou seja, ele vai tentar determinar sozinho qual dos três abaixo deve ser usado, de acordo com o comando passado); adCmdText = Texto (ou seja, uma instrução SQL); adCmdTable = Tabela (ou seja, somente o nome da tabela); adCmdStoredProc = Uma Stored Procedure (ou seja, um procedimento já gravado no BD). Certo? ;) Graymalkin
  3. O que você está usando para armazenar os dados? Uma DataTable? Se for, acho que é só olhar a propriedade Rows.Count. Abraços, Graymalkin
  4. Apagar onde? :unsure: Em uma textbox? Graymalkin
  5. ASP.NET ou Windows Forms? C# ou VB.NET? Leia este tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=76764 Abraços, Graymalkin
  6. De acordo com o nome do kit (resource = recursos, no sentido de suporte) eu já imaginei que nem com o VB ele vem. E isso foi confirmado aqui: http://msdn.microsoft.com/library/default....resourcekit.asp Mas, você pode obter a versão Express do VB.NET 2005, que é de graça (e li algo sobre um Resource Kit destes para o VS 2005). E, em relação ao BD, existe também a versão Express do SQL Server 2005. Mas, eu indico a utilização do PostgreSQL, que é um banco free e ótimo de se trabalhar com .NET. Abraços, Graymalkin
  7. Você quer dizer pegar apenas 5 primeiros algarismos do código? Para isso você pode usar a função Left(). Abraços, Graymalkin
  8. Graymalkin

    Ajuda Com Numeros.

    Realmente, não tem Val() no VBScript (mas tem no VB). De qualquer maneira, acho que Cdbl() em conjunto com Replace() pode dar certo: v = cdbl(replace("9.5", ".", ",")) Response.Write(v) Veja se funciona aí. Se funcionar, é só você colocar o valor do frete que vem do site dos Correios no lugar daquele "9.5". Abraços, Graymalkin
  9. Experimente então fazer: rs = DtUser.Database.OpenRecordset("SELECT * FROM tabela WHERE Nome='" & nome.Text & "'") If Not rs.EOF Then MsgBox "Usuário já existente", vbInformation, "Aviso" DtUser.Recordset.CancelUpdate Else DtUser.Recordset.Update End If Graymalkin
  10. Use adCmdText ao invés de acCmdTable. Abraços, Graymalkin
  11. É que no meu caso eu precisava efetivamente ver os bits, então montei tudo passo-a-passo. Mas, gostei da sua função também. Eu já usei a PIL, mas não pra esse tipo de coisa (foi só para redimensionar imagens e inserir uma marca d'água). Mas, vou ver se consigo algo. Abraços, Graymalkin PS: Ei, estamos usando Python, então não precisamos do famigerado ponto-e-vírgula... :D
  12. Graymalkin

    Ajuda Com Numeros.

    Faz um teste colocando o seguinte: car_frete = val("9.5") Veja se funciona e depois me fala. Abraços, Graymalkin
  13. Consegui ler o resto do arquivo usando funções que criei para ler tags de MP3. Só tive que inverter os bytes porque a ordem dos bits é diferente da que eu usava (mas isso foi resolvido com a função reversed()). O código ficou assim: # -*- coding: iso-8859-1 -*- from utils import * SFFFile = open("kfm.sff","r") Header = {} # 512 bytes Header["signature"] = SFFFile.read(12) Header["version"] = [SFFFile.read(1), SFFFile.read(1), SFFFile.read(1), SFFFile.read(1)] # [4] Header["NoGroups"] = SFFFile.read(4) Header["NoImages"] = SFFFile.read(4) Header["FirstFileOffset"] = SFFFile.read(4) Header["SizeSubHeader"] = SFFFile.read(4) Header["PaletteType"] = SFFFile.read(1) Header["BlankSetZero"] = SFFFile.read(3) Header["Comments"] = SFFFile.read(476) qtimagens = calcsize(Header["NoImages"]) proximo = calcsize(Header["FirstFileOffset"]) i=0 while i<qtimagens-1: SFFFile.seek(proximo) SubHeader = {} SubHeader["Next"] = SFFFile.read(4) SubHeader["SubFileLength"] = SFFFile.read(4) SubHeader["X"] = SFFFile.read(2) SubHeader["Y"] = SFFFile.read(2) SubHeader["Group"] = SFFFile.read(2) SubHeader["ImageNumber"] = SFFFile.read(2) SubHeader["Previous"] = SFFFile.read(2) SubHeader["Palette"] = SFFFile.read(1) SubHeader["Comments"] = SFFFile.read(14) tamanho = calcsize(SubHeader["SubFileLength"]) SubHeader["PCXData"] = SFFFile.read(tamanho) print "Posição da próxima imagem: %i" % calcsize(SubHeader["Next"]) print "Tamanho..................: %i" % tamanho print "Posição X................: %i" % calcsize(SubHeader["X"]) print "Posição Y................: %i" % calcsize(SubHeader["X"]) print "Grupo....................: %i" % calcsize(SubHeader["Group"]) print "Número da imagem.........: %i" % calcsize(SubHeader["ImageNumber"]) print "Número da imagem anterior: %i" % calcsize(SubHeader["Previous"]) print "Paleta...................: %i" % calcsize(SubHeader["Palette"]) print "Comentários..............: %s" % SubHeader["Comments"] proximo = calcsize(SubHeader["Next"]) print proximo i += 1 #if i==10: break Crie um arquvo chamado utils.py com as seguintes funções: def b2d(l): lista = l[:] lista.reverse() qt = 0 ret = 0 for b in lista: if b==1: ret += 2**qt qt += 1 return ret def d2b(n): ret = [] while n!=1 and n!=0: resto = n%2 n = n/2 ret.append(resto) ret.append(n) pad = [0]*(8-len(ret)) ret += pad ret.reverse() return ret def calcsize(chunk): bytes = [d2b(b) for b in [ord(x) for x in reversed(chunk)]] bits = [] for byte in bytes: bits += byte return b2d(bits) Tentei gravar o conteúdo de um PCXData para um arquivo .pcx, mas não tive sucesso em visualizá-lo. Talvez falte a paleta ou algo assim. Não sei a estrutura de um PCX, então não deu para testar. Abraços, Graymalkin
  14. Graymalkin

    Visual Basic

    Dê uma procurada sobre o componente MSComm. Abraços, Graymalkin
  15. Bom, teoricamente você pode fazer referência ao DAO 3.6 e atribuir um DAO.Recordset ao objeto. Você vai estar trabalhando com o mesmo tipo que ele espera (pelo menos em teoria). Veja se dá certo. Abraços, Graymalkin
  16. Até tem. Se você estiver usando o SP4 do VB6 já vai ter o Access 2000 na propriedade Connect. Ou então você tem que ter o DAO 3.6, e deve atribuir o Recordset aberto via código para o data, conforme mostrado nesta página: http://support.microsoft.com/kb/238401 Isso porque o controle Data é baseado no Jet 3.51, que só funciona com bancos até o Access 97. Para novas versões do Access (2000, XP e 2003) você precisa do Jet 4.0. Abraços, Graymalkin
  17. Graymalkin

    Ajuda Com Numeros.

    Afinal de contas... ele vem com vírgula ou com ponto? Você já tentou a função Cdbl()? Graymalkin
  18. Eu *acho* que você pode fazer o seguinte: rs = DtUser.Database.OpenRecordset("SELECT * FROM tabela WHERE Nome='" & nome.Text & "'") If Not (rs.EOF And rs.BOF) Then MsgBox "Usuário já existente", vbInformation, "Aviso" DtUser.Recordset.CancelUpdate Else DtUser.Recordset.Update End If Veja aí se funciona. Tem muito tempo que não uso DAO e o código acima eu não testei. Abraços, Graymalkin
  19. Graymalkin

    Ajuda Com Numeros.

    Ainda não deu pra me localizar bem (mas ASP é meio bagunçado mesmo), mas seria algo assim: Car_frete = Val(Request.QueryString("Tarifa")) Isso supondo que a linha acima seria a que obtém o valor do frete. Abraços, Graymalkin
  20. "Programar" mesmo, não tem diferença nenhuma em nenhuma linguagem de programação imperativa (VB6, VB.NET, C#, Python, C/C++, etc.). Você programa em todas elas do mesmo jeito. Agora, em relação aos objetos, classes, funções, e demais elementos disponíveis na linguagem, sim, tem muita diferença do VB6 para o VB.NET. Abraços, Graymalkin
  21. Neste tópico aqui eu postei um exemplo: http://scriptbrasil.com.br/forum/index.php?showtopic=62386 Abraços, Graymalkin
  22. Dois programas não podem usar a mesma porta, por isso você vai ter que fechar o seu programa no servidor. Agora, é bem mais simples você fazer isso em Python do que em C/C++. Como você disse que C++ não é a sua área, creio que qualquer linguagem que seja mais simples e prática servirá, certo? Então, em Python você pode fazer isso assim: import socket k = socket.socket() k.bind(("IP do servidor ou da Internet", 6667)) k.listen(1) conexao, endereco = k.accept() print repr(conexao.recv(1024)) Com isso você vai poder receber os primeiros 1024 bytes do início da conexão. Se tudo der certo você pode fazer um loop ali para receber mais dados, se for o caso. Ah, e avise também para eu poder mover para a sala de Python se for o caso. Abraços, Graymalkin
  23. É, eu fiz o teste aqui e realmente acontece o que você diz. Mas, fiz outro teste usando uma DataTable e dá certo. O primeiro teste foi: Public Class Field Private _rótulo As String Private _nome As String Private _tipo As Type Public Property Rótulo() As String Get Return _rótulo End Get Set(ByVal value As String) _rótulo = value End Set End Property Public Property Nome() As String Get Return _nome End Get Set(ByVal value As String) _nome = value End Set End Property Public Property Tipo() As Type Get Return _tipo End Get Set(ByVal value As Type) _tipo = value End Set End Property Public Sub New(ByVal rótulo As String, ByVal nome As String, ByVal tipo As Type) Me.Rótulo = rótulo Me.Nome = nome Me.Tipo = tipo End Sub Public Overrides Function ToString() As String Return Me.Nome End Function End Class Public Class Teste Private _fields As List(Of Field) Public Property Fields() As List(Of Field) Get Return _fields End Get Set(ByVal value As List(Of Field)) _fields = value End Set End Property Public Sub New() Me.Fields = New List(Of Field) End Sub End Class Daí fiz o teste: Dim k As New Teste() k.Fields.Add(New Field("Nome:", "Nome", Type.GetType("System.String"))) k.Fields.Add(New Field("Telefone:", "Telefone", Type.GetType("System.String"))) ComboBox1.DataSource = k.Fields 'Adicionado depois: k.Fields.Add(New Field("Teste:", "Teste", Type.GetType("System.String"))) Realmente o campo "Teste", adicionado depois, não aparece. E aí está a segunda classe que criei (agora usando uma DataTable e sem criar a classe Field): Public Class Teste2 Private _fields As DataTable Public Property Fields() As DataTable Get Return _fields End Get Set(ByVal value As DataTable) _fields = value End Set End Property Public Sub New() Me.Fields = New DataTable() Me.Fields.Columns.Add("Rótulo", Type.GetType("System.String")) Me.Fields.Columns.Add("Nome", Type.GetType("System.String")) Me.Fields.Columns.Add("Tipo", Type.GetType("System.Type")) End Sub End Class E, com esta fiz o teste: Dim k2 As New Teste2() k2.Fields.Rows.Add("Nome:", "Nome", Type.GetType("System.String")) k2.Fields.Rows.Add("Telefone:", "Telefone", Type.GetType("System.String")) ComboBox2.DataSource = k2.Fields ComboBox2.DisplayMember = "Nome" 'Adicionado depois: k2.Fields.Rows.Add("Teste:", "Teste", Type.GetType("System.String")) E neste caso apareceu o último campo adicionado ("Teste") automaticamente na ComboBox. Esta diferença deve existir pelo fato de uma lista (List) não ter acesso ao controle que está exibindo os dados para atualizá-lo no momento que um item é adicionado. Já a DataTable deve ter este tipo de acesso. Abraços, Graymalkin
  24. Crie uma imagem que ocupe a tela toda e com o logo no meio. Quando eu usava o VB6 eu fazia programas simples, sem toolbar, só com botões e menus. Agora no VB.NET é que passei a usar a ToolStrip. Então, não tenho como te recomendar algum. Abraços, Graymalkin
  25. Sim, pode acontecer sim. Se não me engano eu mesmo já tive esse problema. Mas, no caso, é só você incluir o OCX no seu programa de instalação. Isso resolve o caso. Bom, o desenvolvimento tá meio parado por falta de tempo, mas pode deixar que quando estiver em fase de teste eu te aviso! Valeu! :) Abraços, Graymalkin
×
×
  • Criar Novo...