Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - arturoro

#1
Buenas Noches a Todos  :rolleyes:

  Espero me puedan orientar acerca de una duda que tengo en relacion a la lectura de una tarjeta Smartcard con chip, tengo un lector omnikey 3121 USB y mi duda es que si con el omnikey puedo leer y grabar en la PC o utilizar un microcontrolador,  etc. el contenido del VPP que es el contacto 6, he leido que el vpp (Programing voltage) es lo que antes era el eeprom, ademas, puede ser utilizado para suministrar el voltaje requerido para programar o borrar la memoria interna no volátil. Yo solo requiero leer y descargar, he leido que es una applet java la que se incorpora (o en su defecto que me corrijan).

Saludos a todos y espero me puedan ayudar!!!  ;-)
   
#2
Hola nuevamente Lekim   :laugh: :

Excelente codigo que volviste a poner, excelente  ;-) , en relacion a las comparaciones fue el profe que nos hizo que si en la tabla1 y en la tabla2 habia registros duplicados, y nos puso de ejemplo "pedro" en tabla1 y "pedro" en tabla2 (creo que fumo de la mala hierba jejeje  :silbar: ).

Y gracias por decirme que hay un subforo para .net, ya lo guarde y gracias por decirme como poner el codigo entendible, lo vuelvo a poner para que se entienda jejeje!!!.

Código (vbnet) [Seleccionar]


Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Mydir, Myrep As String
        Dim Reg As Integer = 0
        Mydir = CurDir() + "\" + "Datos.accdb"
        Myrep = CurDir() + "\"
        Dim NombreTabla1 As String = "L1"                                       '//La tabla se llama "L1"
        Dim NombreTabla2 As String = "L2"

        Dim query As String = "SELECT * FROM " & NombreTabla1
        Dim query2 As String = "SELECT * FROM " & NombreTabla2

        Dim MDBConnString_ As String = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Mydir & ";"  'En esta parte solo la modifique para que la reconociera
                                   'access 2010, ya que me daba error de acceso con lo que me
                                   ' pusiste
        Dim DataSet_ As New DataSet                                             '//Caché de memoria interno de datos
        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)        '//Conexión con la base de datos
        Connection.Open()                                                     '//Abre la clase de datos

        Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)      '//Instrucción SQL
        Dim cmd2 As New System.Data.OleDb.OleDbCommand(query2, Connection)

        Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
        Dim DataAdapter2 As New System.Data.OleDb.OleDbDataAdapter(cmd2)

        DataAdapter.Fill(DataSet_, NombreTabla1)                               '//Adapta la tabla (fila, columnas) al DataSet
        DataAdapter2.Fill(DataSet_, NombreTabla2)

        Connection.Close()                                                    '//Cierra conexión

        Dim Tabla2 As DataTable = DataSet_.Tables(NombreTabla2)
        Dim Tabla As DataTable = DataSet_.Tables(NombreTabla1)                 '//Crea una tabla e introduce los datos del DataSet

        Dim NumRows As Integer = Tabla.Rows.Count                             '//Obtiene el número de filas de la tabla
        Dim NumRows2 As Integer = Tabla2.Rows.Count

        Dim l1, l2 As String

        MsgBox(CStr(NumRows))
        MsgBox(CStr(NumRows2))

        For Each Filas1 As DataRow In Tabla.Rows
            Dim Columna1 As Integer = 0                                        '//La primera columna de la tabla
            l1 = Filas1.Item(Columna1)                                     'ListBox1.Items.Add(Filas.Item(Columna1))        '//Devuelve las filas de la primera columna
            For Each Filas2 As DataRow In Tabla2.Rows
                Dim Columna2 As Integer = 0                                        '//La primera columna de la tabla
                l2 = Filas2.Item(Columna2)
                If l1 = "Pedro" And l2 = "Marciano" Then
                    MsgBox("SE LOGRO REGISTRO. FIN")
                    End
                End If
            Next
        Next
        MsgBox("NO SE ENCONTRO CONCORDANCIA. ADIOS")
        End
    End Sub
End Class

#3
Muchas Gracias Lekim, en verdad me ayudaste mucho en vb.net 2010  ;-) :

Te comento que solo le hice pequeñas modificaciones, pero, hize pruebas y funciona muy bien, te paso completo el programa, esta en vb.net 2010 y lo posteo para que lo veas y si a alguien le pudiese servir.

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Mydir, Myrep As String
        Dim Reg As Integer = 0
        Mydir = CurDir() + "\" + "Datos.accdb"
        Myrep = CurDir() + "\"
        Dim NombreTabla1 As String = "L1"                                       '//La tabla se llama "L1"
        Dim NombreTabla2 As String = "L2"

        Dim query As String = "SELECT * FROM " & NombreTabla1
        Dim query2 As String = "SELECT * FROM " & NombreTabla2

        Dim MDBConnString_ As String = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" & Mydir & ";"  En esta parte solo la modifique para que la reconociera access 2010, ya que me daba error de acceso con lo que me pusiste
        Dim DataSet_ As New DataSet                                             '//Caché de memoria interno de datos
        Dim Connection As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(MDBConnString_)        '//Conexión con la base de datos
        Connection.Open()                                                     '//Abre la clase de datos

        Dim cmd As New System.Data.OleDb.OleDbCommand(query, Connection)      '//Instrucción SQL
        Dim cmd2 As New System.Data.OleDb.OleDbCommand(query2, Connection)

        Dim DataAdapter As New System.Data.OleDb.OleDbDataAdapter(cmd)
        Dim DataAdapter2 As New System.Data.OleDb.OleDbDataAdapter(cmd2)

        DataAdapter.Fill(DataSet_, NombreTabla1)                               '//Adapta la tabla (fila, columnas) al DataSet
        DataAdapter2.Fill(DataSet_, NombreTabla2)

        Connection.Close()                                                    '//Cierra conexión

        Dim Tabla2 As DataTable = DataSet_.Tables(NombreTabla2)
        Dim Tabla As DataTable = DataSet_.Tables(NombreTabla1)                 '//Crea una tabla e introduce los datos del DataSet

        Dim NumRows As Integer = Tabla.Rows.Count                             '//Obtiene el número de filas de la tabla
        Dim NumRows2 As Integer = Tabla2.Rows.Count

        Dim l1, l2 As String

        MsgBox(CStr(NumRows))
        MsgBox(CStr(NumRows2))

        For Each Filas1 As DataRow In Tabla.Rows
            Dim Columna1 As Integer = 0                                        '//La primera columna de la tabla
            l1 = Filas1.Item(Columna1)                                     'ListBox1.Items.Add(Filas.Item(Columna1))        '//Devuelve las filas de la primera columna
            For Each Filas2 As DataRow In Tabla2.Rows
                Dim Columna2 As Integer = 0                                        '//La primera columna de la tabla
                l2 = Filas2.Item(Columna2)
                If l1 = "Pedro" And l2 = "Marciano" Then
                    MsgBox("SE LOGRO REGISTRO. FIN")
                    End
                End If
            Next
        Next
        MsgBox("NO SE ENCONTRO CONCORDANCIA. ADIOS")
        End
    End Sub
End Class

Como te diste cuenta, solo agrege otro for next pero para la tabla 2

MUCHAS GRACIAS Y SI ESTAS DE ACUERDO LEKIM, SE DA POR CERRADO  ;-)  ;-)


#4
Hola a todos y buenas tardes o noches: :laugh:

Deseo que me puedan orientar acerca de como puedo hacerle para que me lea en una tabla llamada tabla1 que esta en un archivo creado en access 2010 llamado Database1.accdb, el primer registro del campo llamado L1, que tome el valor y luego se vaya a la otra tabla llamada tabla2 para que tome el valor del primer registro del campo llamado L2, despues comparo esos dos valores si son iguales, que mande msg de registro encontrado, en caso contrario, que siga leyendo el siguiente registro de la tabla2, y que siga comparando, si llega al final del archivo de la tabla2, que se regrese a la tabla1 y se vaya al segundo registro y otra vez repite el proceso asi sucesivamente hasta el fin de la tabla1 (ya que el maestro es la tabla1 y el segundo la tabla2), y si no hay igualdad, que mande mensaje de que no hubo igualdad.

Perdonen mi ignorancia, ya que habia hecho por lo menos el acceso en visual basic 6, y el maestro nos la cambio a visual basic .net 2010 >:D  y la verdad, me manda muchos errores, estuve viendo que ya no es igual de vb6 a vb.net 2010.

Espero me puedan ayudar.

SALUDOS!!!  ;-)
#5
Gracias PKJ, es exactamente lo que necesito  ;-)  , esta en vb 6.0, lo voy a convertir (jejeje!! si eso aplica) a vb.net 2010, y lo voy a subir, y tambien y como una pequeña aportacion y un gran gracias a PKJ, les pongo otro calculo de combinaciones en vb.net 2010, por si alguien le interesa y le saca provecho.

Solo necesitan 2 textbox, 1 listbox y 1 boton.

Código (vbnet) [Seleccionar]
Public Class Form1

   Sub Permutaciones(ByVal a() As String, ByVal j As Integer, ByVal k As Integer, ByVal lista As ListBox)
       Dim i As Integer
       Dim s As String = ""
       Dim sTemp As String
       If j = 1 Then
           For i = 1 To k
               s = s & a(i)
           Next i
           lista.Items.Add(s)
       Else
           For i = 1 To j
               sTemp = a(i)
               a(i) = a(j)
               a(j) = sTemp
               Permutaciones(a, j - 1, k, lista)
               sTemp = a(j)
               a(j) = a(i)
               a(i) = sTemp
           Next i
       End If
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       lbResultados.Items.Clear()
       If txtVariables.Text.Trim.Length >= 2 Then
           Dim x As Integer
           Dim i As Integer
           Dim a() As String
           x = Len(txtVariables.Text)
           ReDim a(x)
           For i = 1 To Len(txtVariables.Text)
               a(i) = Mid(txtVariables.Text, i, 1)
           Next i
           Permutaciones(a, x, x, lbResultados)
           txtTotal.Text = lbResultados.Items.Count.ToString
       Else
           MsgBox("Introduzca un cadena valida")
       End If
   End Sub
End Class


GRACIAS POR TODO!!!   ;-) :rolleyes: ;-) :rolleyes:
#6
Hola PKJ y gracias por responder   ;-) :

Si, creo que no me explique bien, tu programa esta excelente, solo deseo que los 8 grupos con elementos de 2, haga las combinaciones, y debe de salir mas o menos asi:

GRUPO DE 8 CON 2 ELEMENTOS CADA UNO: AA,BB,CC,8E,Z1,X1,Y0,01     :rolleyes:

Las combinaciones serian mas o menos as1:

AA,BB,CC,8E,Z1,X1,Y0,01
BB,AA,CC,8E,Z1,X1,Y0,01
01,BB,AA,CC,8E,Z1,X1,Y0
CC,8E,Z1,X1,Y0,01,BB,AA

... Y asi sucesivamente hasta que ya no existan mas combinaciones, ya sea poner un listbox, o un archivo.

Gracias por todo y perdona mi ignorancia

SALUDOS!!!  :laugh:
#7
Hola a todos y buenas noches o dias:

Estuve leyendo acerca del Programa para hacer combinaciones de numeros, y vi que el usuario pkj, hizo y modifico un programa en vb 6.0, y lo puse en vb.net 2010, en donde podias poner el tamaño del grupo y la lista de numeros que querias formar, yo quiero calcular y grabar en un archivo todas las combinaciones de 8 grupos de 2, ya sea numero, letras o la combinacion, por ejemplo el grupo de 8 seria: "AA,BB,CC,15,EE,20,GG,01" y calcular todas las varibles que pueden salir, segun en el propio programa, el total de variables son 40320, y yo deseo grabar todas esas variables, claro, sin repetir.

Al momento de ejecutar el programa con las variables ya descritas, solo hace el primer calculo o mejor dicho, coge las primeras variables, hasta ahi, todo bien, pero, ya no hace los otros calculo, solo saca la primera linea y termina, estuve observando y si muevo el total de la matriz donde guarda los datos obtenidos, me manda error en la matriz de los numeros.

Les paso el link en donde el usuario PKJ (agradezco su valiosa aportacion, ya que es lo que deseo) pone su programa, esta en vb 6.0:

https://foro.elhacker.net/programacion_visual_basic/programa_para_hacer_combinaciones_de_numeros-t414603.10.html

Yo le hice pequeñas modificaciones, les paso el programa para que me puedan orientar o en su defecto ayudar, esta en vb.net 2010

Código (vbnet) [Seleccionar]
Public Class Form1
   Public TamGrupos As Integer = 8 ' Tamaño de los grupos
   Public ListaDeNumeros As String = "AA,BB,CC,DD,EE,FF,GG,HH" ' lista de numeros separados por comas
   Public Parar As Integer

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Parar = 1
   End Sub
   Private Function CalculaTotal(ByVal TamGrupos As Integer, ByVal MaximoValor As Integer) As Long
       Dim C1 As Double
       Dim C2 As Double
       Dim F As Double

       C1 = 1
       C2 = 1
       For F = 1 To TamGrupos
           C1 = C1 * F
       Next F

       For F = MaximoValor To (MaximoValor - (TamGrupos - 1)) Step -1
           C2 = C2 * F
       Next F
       CalculaTotal = C2 / C1

   End Function


   Private Sub CreaGrupos(ByVal TamGrupos As Integer, ByVal TopeOListaDeNumerosSeparadosPorComas As String, ByRef ListaDevuelta() As String)
       ' Busqueda de combinaciones.
       ' Dados los numeros de TopeOListaDeNumerosSeparadosPorComas,
       ' saca todos los grupos no repetidos de "TamGrupos" numeros
       ' y los devuelve en la matriz Lista()
       ' Por repetido se entiende que "1,2,3" es igual que "1,3,2", igual que "2,1,3", etc...
       ' Ejm: 1,2,3,4 de 2 en 2 = 6 combinaciones
       ' 1,2 - 1,3 - 1,4 - 2,3 - 2,4 - 3,4
       ' Opcionalmente, en lugar de una lista de números puedes poner un solo número.
       ' En ese caso la listadenumeros seran los números desde el 1 hasta el que pongas.

       Dim F As Double
       Dim Linea As String
       Dim Num As Double
       Dim Total As Double
       Dim Ap() As Double
       Dim MaximoValor As Long

       Dim MatrizDeNumeros() As String
       MatrizDeNumeros = Split(TopeOListaDeNumerosSeparadosPorComas, ",")
       MaximoValor = UBound(MatrizDeNumeros) + 1

       If MaximoValor = 1 And Val(MatrizDeNumeros(0)) > 0 Then
           MaximoValor = Val(MatrizDeNumeros(0))
           ReDim MatrizDeNumeros(MaximoValor - 1)
           For F = 1 To MaximoValor
               MatrizDeNumeros(F - 1) = F
           Next F
       End If

       Total = CalculaTotal(TamGrupos, MaximoValor)

       ReDim Ap(TamGrupos)

       ReDim ListaDevuelta(Total - 1)
       Dim Contador As Long
       Contador = -1

       Parar = 0

       ' Cogemos las primeras
       For F = 1 To TamGrupos
           Ap(F) = F
       Next F

OtraVez:
       'Preparo la linea con la combinacion
       Linea = ""
       For F = 1 To TamGrupos - 1
           Linea = Linea & MatrizDeNumeros(Ap(F) - 1) & " , "
       Next F
       Linea = Linea & MatrizDeNumeros(Ap(TamGrupos) - 1)

       ' Guardo la combiancion
       Contador = Contador + 1
       ListaDevuelta(Contador) = Linea

       'Label4.Caption = Contador + 1 ' Muestro el progreso

       Application.DoEvents()
       If Parar = 1 Then GoTo Fin

       Num = TamGrupos + 1

Repetir1:
       Num = Num - 1  ' Cogemos la apuesta(num) (en principio la ultima)

       'La aumentamos...
       Ap(Num) = Ap(Num) + 1

       ' si es mayor de la cuenta...
       If Ap(Num) > (MaximoValor - (TamGrupos - Num)) Then

           ' si es la ap(1) se acaba
           If Num = 1 Then GoTo Fin

           ' ...aumentamos la anterior
           GoTo Repetir1
       End If

       ' Si no llega a su limite se mira si alguna ha llegado
       ' a su maximo
       ' Si NUM no apunta a la ultima AP() es que
       ' alguna ap() ha llegado a su maximo
       ' entonces reiniciamos todas las siguientes...
       If Num <> TamGrupos Then
           For F = Num + 1 To TamGrupos
               '....dandoles el valor de la anterior + 1...
               Ap(F) = Ap(F - 1) + 1
           Next F
       End If

       ' ... Y se da por valida
       GoTo OtraVez

Fin:
       Parar = 1

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       If Parar = 0 Then Parar = 1 : Exit Sub

       Dim Matriz() As String = Nothing ' matriz donde recibiremos la lista

       CreaGrupos(TamGrupos, ListaDeNumeros, Matriz)

       'Aqui manipulas la matriz como quieras
       ' por ejemplo pasandola a un listbox

       ListBox1.Visible = False
       Dim F As Long
       For F = 0 To UBound(Matriz)
           ListBox1.Items.Add(Matriz(F))
       Next F
       ListBox1.Visible = True

   End Sub
End Class


De antemano Muchas GRACIAS!!!  ;-)
#8
Hola Amigos de foro, espero me puedan ayudar con este problema:

   Me dieron un fuente en VB Net 2005 que tiene un archivo llamado AboutBox.resx, el problema es que la primera vez que lo abri, no habia problemas, solo fue que cerre y abri el VS 2005, y cuando ingreso al archivo AboutBox.vb, ya empeze a tener problemas, automaticamente abre el archivo AboutBox.vb[Diseño] y aparece instrucciones en html, y me manda la siguiente advertencia

Advertencia   10   La variable 'manager' no está declarada o no se asignó nunca.   C:\Documents and Settings\Administrador\Escritorio\proyectos\Diagnostics.VB\Full\Diagnostics.Main\AboutBox.vb   74   0   

Pero, si la tengo declarada la variable dentro del archivo AboutBox.vb:

Dim manager As New ComponentResourceManager(GetType(AboutBox))
Me.groupBox1 = New GroupBox
Me.m_lblVersion = New Label
Me.m_lblProduct = New Label
Me.m_btnOk = New Button
Me.pictureBox1 = New PictureBox
Me.label1 = New Label
Me.groupBox1.SuspendLayout()
DirectCast(Me.pictureBox1, ISupportInitialize).BeginInit()
MyBase.SuspendLayout()
Me.groupBox1.Controls.Add(Me.m_lblVersion)
Me.groupBox1.Controls.Add(Me.m_lblProduct)
Me.groupBox1.Controls.Add(Me.m_btnOk)
Me.groupBox1.Controls.Add(Me.pictureBox1)
Me.groupBox1.Controls.Add(Me.label1)
Me.groupBox1.Controls.Add(Me.m_lblDSST)
Me.groupBox1.Controls.Add(Me.m_lblOSDPlus)
            manager.ApplyResources(Me.groupBox1, "groupBox1")

He leido este error y es porque no esta definido, y la verdad no tengo experiencia en el manejo de los recursos de un archivo .resx, pero hasta donde he visto si esta definida la variable, lo curioso es que me la marca como advertencia y no como error.

   Si me podrian ayudar en el problema de este tipo de error?  :o

   GRACIAS DE ANTEMANO !!!  ;-)
#9
Hola Amigos del Foro, espero me puedan ayudar:  :-* :-*

  He visto antes que en Windows XP SP3, despues de un tiempo, dispositivos activos (como por ejemplo memorias, impresoras, etc que sean USB), a pesar de que no estan fisicamente conectadas siguen activas, por ejemplo he insertado memorias USB distintas y reconoce solo la primera, a veces es solo reiniciar la makina y listo. Mi pregunta es:

  Que se puede hacer para que esos dispositivos USB sigan activos a pesar de que no esten fisicamente conectados a la maquina?  Se que es un bugs de win xp, como puedo recrearlo?

  GRACIAS POR TODO  ;-) ;-) ;-) ;-) ;-)
#10
Hola de nuevo MCKSys Argentina:

   Creo que estoy en una encruzigada, el offset es la direccion que se ve en el editor Hexa verdad???, si es eso, me manda direcciones raras en el editor hexa, ya que si lo comparo con el que me da IDA, no me da el offset pero si los datos en hexa, y lo mas raro, es que si lo abro el programa en cuestion con el OllyDBG, me abre el modulo ntdll, y si le digo que debo de ir al programa ejecutable, me regresa al mismo modulo, a pesar de que en la barra de la ventana me dice que esta el .exe abierto  :-\

   EN pocas palabras solo el IDA lo abre como es y no lo puedo modificar  :-[ :-[ :-[ :-[