elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15
81  Programación / Programación Visual Basic / Re: AYUDA!! MEJORAR EL CODIGO PARA QUE EL PROCESO LO HAGA MAS RAPIDO en: 16 Octubre 2010, 01:28 am
Bueno aqui mejore el codigo originalmente posteado, no se si sea mas rapido porque no lo probe con tantos registros, solo con los que el puso de ejemplo.

Utiliza la memoria para realizar el proceso y no necesita del archivo RUTS.txt aunque lo deje por si acaso. Hize un solo bucle para todo el proceso lo cual es mas rapido ya que antes dijiste que campo1 y 2 no son necesarios.

Suponiendo que el "rut" no se encuentra en los campos 1 o 2 hize este code:

Código
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Command1_Click()
  5.  
  6.    Dim DIRECCION As String
  7.    Dim Sumatoria As String
  8.    Dim Content() As String
  9.    Dim I         As Long
  10.    Dim Regs      As String
  11.    Dim Llave     As String
  12.    Dim Ruts      As String
  13.    Dim V         As Integer
  14.  
  15.    If Dir$(App.Path & "\RUTS.txt") <> "" Then Kill App.Path & "\RUTS.txt"
  16.  
  17.    If Dir$(App.Path & "\ARCHIVO_FINAL.txt") <> "" Then Kill App.Path & "\ARCHIVO_FINAL.txt"
  18.  
  19.    cd.ShowOpen    ' abre una ventana para buscar el archivo base
  20.    DIRECCION = cd.FileName   ' la direccion se guarda en una variable
  21.  
  22.    Open DIRECCION For Input As #1     ' abrimos el archivo               ' lo recorremos mientras no sea fin de archivo
  23.  
  24.    Content = Split(Input$(LOF(1), #1), vbCrLf)
  25.  
  26.    Close #1
  27.  
  28.    For I = LBound(Content) To UBound(Content)
  29.  
  30.        If Content(I) <> "" Then
  31.  
  32.            Llave = Mid$(Content(I), 58, 9)
  33.            Sumatoria = Mid$(Content(I), 35, 8)
  34.  
  35.            If Llave <> "" Then
  36.  
  37.                V = InStr(1, Regs, Llave)
  38.  
  39.                If V = 0 Then
  40.  
  41.                    Regs = Regs & Llave & vbCrLf
  42.                    Ruts = Ruts & Content(I) & vbCrLf
  43.                    EscriveLog Llave, "RUTS"
  44.  
  45.                Else
  46.  
  47.                    V = InStr(1, Ruts, Llave)
  48.                    Ruts = Replace$(Ruts, Mid$(Ruts, V - 23, 8), Format$(Val(Mid$(Ruts, V - 23, 8)) + Val(Sumatoria), "00000000"))
  49.  
  50.                End If
  51.  
  52.            End If
  53.  
  54.        End If
  55.  
  56.    Next
  57.  
  58.    Ruts = Mid$(Ruts, 1, Len(Ruts) - 2)
  59.  
  60.    EscriveLog Ruts, "ARCHIVO_FINAL"
  61.    MsgBox "FIN"
  62.  
  63. End Sub
  64.  
  65.  

Modulo:

Código
  1.  
  2. Public Function EscriveLog(ByRef Texto As String, ByRef tipo As String) ', ByRef xTipo As Byte)
  3.  
  4.    Dim strFile As String
  5.    Dim fn      As Long
  6.    Dim strLog  As String
  7.  
  8.    strFile = App.Path & "\" & tipo & ".txt"
  9.    fn = FreeFile
  10.    strLog = Texto
  11.  
  12.    Open strFile For Append As fn
  13.  
  14.    Print #fn, strLog
  15.  
  16.    Close fn
  17.  
  18. End Function
  19.  
  20.  

82  Programación / Programación Visual Basic / Re: AYUDA!! MEJORAR EL CODIGO PARA QUE EL PROCESO LO HAGA MAS RAPIDO en: 15 Octubre 2010, 22:47 pm
Seria bueno que subieras el archivo base original para ver que tanto podemos optimizar el code. (comprimido) si es que no pesa mucho.
83  Programación / Programación Visual Basic / Re: Recortar número en: 12 Agosto 2010, 05:33 am
y si usas split? :P
84  Programación / Programación Visual Basic / Guardar un UDT en: 12 Agosto 2010, 02:56 am
Buenas :P, esta vez tengo una pregunta y es que he buscado pero no he encontrado mucho, queria saber si es posible grabar los datos de una estructura UDT como string u otro tipo de variable, para luego cargar los datos de nuevo asignadolo al UDT. He visto que se puede grabar una UDT en un archivo binario, pero necesito que no sea en un archivo binario.

PD: Necesito espesificamente guardar los datos de la UDT en una campo de una base de datos, para luego poder leer esa UDT otra vez.
85  Programación / Programación Visual Basic / Re: MultiProceso en: 22 Julio 2010, 00:01 am
@DarkMatrix

http://www.recursosvisualbasic.com.ar/htm/tutoriales/modulos-de-clase-menu.htm

Mas o menos es esto lo que quieres o me equivoco?!¡...

Código
  1.  
  2. Function Funcion2()
  3.    Debug.Print "Empezo la funcion 2"
  4.    Do
  5.        WaitMessage
  6.        DoEvents
  7.    Loop Until Variable = 2 Or Variable = 1
  8.    Debug.Print "Acabo la funcion 2 "
  9. End Function
  10.  
  11.  

No exactamente porque la Funcion 1 es distinta de la 2 y si una cambia la otra no se ve afectada, el problema surge que cuando ejecuto las 2 o mas de 2 solo me analiza la ultima en ejecutar por tanto si Variable = 1 y la ultima funcion ejecutada es la 2 no sale del bucle la 1 y asi se queda.

La idea es permanecer en ambos bucles de ambas funciones por separado de modo que si la variable toma un valor u otro las funciones reaccionen deacuerdo a su condicion de bucle.

PD: le hechare un vistazo a los modulos de clase :P Saludos!
86  Programación / Programación Visual Basic / Re: MultiProceso en: 21 Julio 2010, 17:29 pm
No manejo mucho los modulos de calse pero podrias dar un ejemplo de como lo harias? Aqui pongo un ejemplo de lo que quiero hacer:

En un form:

Código
  1. Option Explicit
  2.  
  3. Dim Variable            As Integer
  4.  
  5. Private Sub Command1_Click()
  6.    Variable = 1
  7. End Sub
  8.  
  9. Private Sub Command2_Click()
  10.    Variable = 2
  11. End Sub
  12.  
  13. Private Sub Form_Load()
  14.    Timer1.Enabled = True
  15.    Timer2.Enabled = True
  16.    MsgBox "Se ejecutaron las funciones"
  17. End Sub
  18.  
  19. Function Funcion1()
  20.  
  21.    Debug.Print "Empezo la funcion 1"
  22.  
  23.    Do
  24.        WaitMessage
  25.        DoEvents
  26.    Loop Until Variable = 1
  27.  
  28.    MsgBox "Acabo la funcion 1 "
  29.  
  30. End Function
  31.  
  32. Function Funcion2()
  33.  
  34.    Debug.Print "Empezo la funcion 2"
  35.  
  36.    Do
  37.        WaitMessage
  38.        DoEvents
  39.    Loop Until Variable = 2
  40.  
  41.    MsgBox "Acabo la funcion 2 "
  42.  
  43. End Function
  44.  
  45. Private Sub Timer1_Timer()
  46.    Timer1.Enabled = False
  47.    Call Funcion1
  48. End Sub
  49.  
  50. Private Sub Timer2_Timer()
  51.    Timer2.Enabled = False
  52.    Call Funcion2
  53. End Sub
  54.  

Tengo 2 botones y dos funciones, los timers son para llamar a ambas funciones al mismo tiempo. Si se corre el ejemplo veran que las dos funciones inicializan pero la ultima en iniciar es la que se mantiene en el bucle mientras que la otra no.

Ejemplo si inicio la aplicacion y empieza la funcion1 y despues la funcion2 si aprieto el command1 que es el que modifica la variable para que salga de la funcion 1 no pasa nada pero si pulso el command2 si sale de la funcion 2 :S a ver si me pueden hechar una mano, he pensado en varias cosas pero no me sirven gracias de ante mano.
87  Programación / Programación Visual Basic / MultiProceso en: 21 Julio 2010, 00:47 am
Buenas, tengo un inconveniente y no encuentro una solucion. Veran tengo una aplicacion que necesita ejecutar una funcion, esta funcion se debe mantener activa hasta que la en la aplicacion suceda algo por ejemplo que cambie una variable, en pequeño ejemplo:

Código
  1. Sub Funcion()
  2.  
  3.    ' La aplicacion activa un suceso, ejemplo activa un command botton.
  4.  
  5.    ' La aplicacion se mantiene en esta linea sin pasar a la siguiente linea hasta que
  6.    ' una variable cambie de valor, cuando la variable cambia de valor entonces
  7.    ' pasa a la siguiente linea.
  8.  
  9.    ' Desactiva el suceso antes activado.
  10.  
  11. End Function


Esto yo lo habia logrado aplicando un doEvents junto con waitmessage, pero el problema surge cuando tengo que llamar dos veces a esa funcion, solo me ejecuta una a la vez, el doevents se mantiene en una funcion pero no me analiza la otra y esto me causa problemas, ya que ambas tienen condiciones diferentes, y si la condicion de una cambia mientras el bucle esta en la otra entonces se queda pegada esa funcion y no me sirve :S. Quisiera saber si saben alguna forma de solucionar esto o alguna alternativa que me sirva Gracias.

Saludos! XD!

88  Programación / Programación Visual Basic / Re: [Ayuda] codigo para vb 6 en: 10 Julio 2010, 00:32 am
Tengo este code en mis codes almacenados ( No es mia la funcion ), Espero que te sirva XD!

Código
  1. '---------------------------------------------------------------------------------------
  2. ' Module : mLocIP
  3. ' DateTime: 19/12/2009 08:55PM
  4. ' Author : Kresha7
  5. ' Mail: kresha7@hotmail.com
  6. ' Purpose : Gets Information about the location of an IP address
  7. '---------------------------------------------------------------------------------------
  8. Public Function LocateIP(IPAddr As String) As String
  9.  
  10.    Dim HTTP As Object
  11.    Dim StrRes As String
  12.    Dim IP As String, Region As String, Country As String, City As String, Latitude As String, Longitude As String, TZone As String, ISP As String, ConT As String
  13.  
  14.    Const URL = "http://www.ip2location.com/"
  15.  
  16.    Set HTTP = CreateObject("Winhttp.Winhttprequest.5.1")
  17.  
  18.    With HTTP
  19.        .Open "POST", URL & IPAddr
  20.        .Send
  21.        StrRes = .ResponseText
  22.    End With
  23.  
  24.    IP = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblICountry")(1), "</span>")(0), 3)
  25.    Region = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblIRegion")(1), "</span>")(0), 3)
  26.    Country = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblICity")(1), "</span>")(0), 3)
  27.    Latitude = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblILatitude")(1), "</span>")(0), 3)
  28.    Longitude = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblILongitude")(1), "</span>")(0), 3)
  29.    TZone = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblITimeZone")(1), "</span>")(0), 3)
  30.    ConT = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblINetSpeed")(1), "</span>")(0), 3)
  31.    ISP = Mid(Split(Split(StrRes, "dgLookup__ctl2_lblIISP")(1), "</span>")(0), 3)
  32.    LocateIP = IP & vbNewLine & Region & vbNewLine & Country & vbNewLine & Latitude & vbNewLine & Longitude & vbNewLine & TZone & vbNewLine & ConT & vbNewLine & ISP
  33.  
  34. End Function
  35.  
89  Programación / Programación Visual Basic / Codigo unico para una pC? en: 2 Julio 2010, 23:48 pm
Buenas, he buscado en la web algun codigo o algo que me sirva para obtener un codigo unico para una maquina, que solo lo tenga esa maquina y ningun otra. Si alguien tiene algo que me ayude se agradece :P Saludos!
90  Programación / Programación Visual Basic / Re: Aplicación Actualizable en: 16 Junio 2010, 02:15 am
El link de descargar esta el source.

PD: Perdon por el doble post.
Páginas: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines