• Jueves 7 de Noviembre de 2024, 22:30

Mostrar Mensajes

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


Temas - Jimbenit

Páginas: 1 2 3 [4]
76
VB .NET / Duda en evento de un DataGridView
« en: Martes 14 de Octubre de 2008, 17:25 »
Hola a todos  :lol:

:mellow: Bien, tengo una duda sobre Visual Basic 2005.

Necesito incluir un msgbox en el evento del data grid viw cuendo este agrega automaticamente la ultima fila de una tabla. es decir:
 


Cuando edito ultima fila, DataGridView agrega ultima fila (automaticamente) y cuando esto suceda aparezca un msgbox. Cual es el evento (del DataGridView) donde debo agregar esta linea de codigo del msgbox?

Saludos.

77
Visual Basic para principiantes / VB 2005 Vs VB6_0
« en: Viernes 10 de Octubre de 2008, 21:08 »
Que tanto recurso consume VB6 frente a VB2005?... que tan bueno es programar en VB 2005 cuando la misma aplicación se puede desarrollar en VB6, que tan ventajosos es hacerlo en VB2005?
Podrian colocar sus comentarios?, me interesa mucho leerlos.
 :mellow: Gracias.

78
VB .NET / Api en VB2005???
« en: Martes 7 de Octubre de 2008, 00:31 »
Puedo incluir API's  de windows en el VB2005???
Como puedo hacer esto??

79
Me gustaria saber como hacen ustedes para mejorar la apariencia de sus aplicaciones... :mellow:

Yo acostumbro a usar un "Skin" cuando deseo mejorar la apariencia de alguna de mis aplicaciones de VB6


P.D.- Me podrian decir como adjunto una imagen de mi PC a esta pagina?

80
La taberna del BIT / Enceusta: Cuanto tiempo te conectas a diario en SoloCodigo?
« en: Viernes 3 de Octubre de 2008, 22:39 »
Esto es algo que me gustaria saber de ustdes?
Que tanto tiempo te conectas a diario en SoloCodigo y como le haces para trabajar si tanto tiempo estas aqui?
 B)
Saludos a todos los de SOLOCODIGO

81
La taberna del BIT / Java Vs Visual Basic 6.0???
« en: Martes 30 de Septiembre de 2008, 21:14 »
Me gustaria escuchar de ustedes cual(es) es(son) la(s) ventaja(s) de Java sobre Visual Basic 6

Enumerenlas...
 :mellow:

82
Publicaciones y e-books / Manual Inno Setup Compiler en Español
« en: Martes 30 de Septiembre de 2008, 20:59 »
Ando buscando el manual en español del Inno Setup Compiler en Español (es que no soy tan bueno con el ingles), alguien lo tiene?

83
Si, si... ya se.. yase...
Ya se que me van a decir: "Hey, ya publicaste eso, ¡No hagas SPAN!", pero lo posteo de nuevo solo por que el titulo de ese post no decia lo que realmente necesitaba (Y no se como editar el titulo) y tal vez muchos no lo leian ( o no lo abrian) por creer que ese tema ya lo dominan o sencillamente no les interesa.

Bueno la duda es:


Hola a todos... he estado mirando post anteriores que hablen sobre metodos graficos (Me han aclarado algunas cosas) pero ninguno me contesta la siguiente pregunta:
Bueno, quiero imprimir un formulario que tenga 3 picturebox, el codigo utlizado es:
Código: Text
  1. Me.PrintForm
  2.  
Pero cuando el formulario se imprime, se imprime lo siguiente:
* El contenido en el formulario (quiero decir, el area correspondiente al formualrio )
* Se imprime el contenido del Picture1 (atencion, son 3 PictureBox)
* El contenido del segundo picturebox no se imprime, como tampoco el contenido del tercero

Me gustaria que se imprimiera el contenido del formulario, incluyendo el contenido de los picture, de los 3 PictureBox y no solo de uno)


Invito a hacer el siguiente ejemplo (para que se me entienda):

Coloquen en un formulario 3 PictureBox, y copien y peguen el siguiente codigo:

Código: Text
  1. Private Sub Form_Load()
  2.  
  3. Me.Picture1.AutoRedraw = True
  4. Me.Picture1.ScaleMode = 6
  5. Me.Picture2.AutoRedraw = True
  6. Me.Picture2.ScaleMode = 6
  7. Me.Picture3.AutoRedraw = True
  8. Me.Picture3.ScaleMode = 6
  9.  
  10.  
  11. Me.Picture1.Line (0, 0)-(20, 20)
  12. Me.Picture2.Line (0, 0)-(20, 20)
  13. Me.Picture3.Line (0, 0)-(20, 20)
  14.  
  15. Me.PrintForm
  16.  
  17. End Sub
  18.  
  19.  

Y solo se imprime el contenido del picture1, como hago para que se imprima el contenido de los 3 picture??


Saludos.

84
Visual Basic 6.0 e inferiores / Como se imprime un PictureBox111?
« en: Miércoles 17 de Septiembre de 2008, 18:53 »
Hola a todos...

:mellow: Bueno... mi duda es la siguienete, estoy haciendo un grafico con el metodo LINE de VB6 en un Picture, pues la duda es: Como puedo mandar a imprimir el contenido de este PictureBox?


Cualquier sugerencia sera bien recibida...

Saludos.

85
Aveces es necesario procesar cadenas de texto, sé que muchos de ustedes se han encontrado con que tienen que diseñar funciones o sub-procedimientos para poder procesar cadenas de texto de una manera muy especial.

Pues este post lo hice con la intencion para que publiquen sus funciones (esas que ustedes han diseñado) que trabajen con cadenas de TEXTO.
Empiezo yo.

En cierta ocasion tuve que diseñar una funcion que me pasara una cadena de texto en sus equivalentes ASCII, pero con un formato especial, por ejemplo:
"Hola mundo"
El resultado debia ser:


10,72,111,108,97,32,109,117,110,100,111


Donde el primer numero indica el numero de caracteres de la cadena y los demas numeros son sus equivalentes ASCII

La funcion es la siguiente:


Código: Text
  1. Function CadenaASCII(CadenaNormal As String) As String
  2. 'Esta funcion recibe una cadena y como resultado da
  3. 'El numero de caracteres con los caracteres pasados a sus valores
  4. 'de la tabla ASCII
  5. 'EJEMPLO:
  6. 'CadenaASCII("YAIR")
  7. 'da como resultado
  8. '4,89,65,73,82
  9. 'Donde el primer numero (4), es el numero de caracteres
  10. 'Y los siguientes numeros son las letras en sus valores ASCII
  11.  
  12. Dim NumLet As Long
  13. Dim LetrASCII As String
  14. Dim Cadena As String
  15. Cadena = CadenaNormal
  16. Cadena = Trim(Cadena)
  17. NumLet = Len(Cadena)
  18.  
  19. For i = 1 To NumLet
  20.     LetrASCII = Asc(Mid(Cadena, i, 1))
  21.    
  22.     If NumLet = 1 Then
  23.         CadenaASCII = LetrASCII
  24.     ElseIf i = 1 Then
  25.         CadenaASCII = LetrASCII & ","
  26.     ElseIf i = NumLet Then
  27.         CadenaASCII = CadenaASCII & LetrASCII
  28.     Else
  29.         CadenaASCII = CadenaASCII & LetrASCII & ","
  30.     End If
  31. Next i
  32.  
  33. CadenaASCII = NumLet & "," & CadenaASCII
  34.  
  35. End Function
  36.  


Copienla en un modulo y pruebenla en la ventana inmediato y luego me cuentan que les parece,
Publiquen las suyas!!

saludos.



86
Visual Basic 6.0 e inferiores / Transpariencia a los formularios
« en: Miércoles 10 de Septiembre de 2008, 15:17 »
Ya se que muchos saben aplicar la transparencia a los formularios, pero se han preguntado si todos saben?

Bueno, para los que no saben aqui les dejo la oportunidad para que la apliquen a sus proyectos...


Copia el siguiente codigo en un modulo standar:

Código: Text
  1. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   NOV 6 / 2007
  2. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  3. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  4. '@@@                                                         @@@@
  5. '@@@ ESTE MODULO SIRVE PARA DAR TRASPARIENCIA A FORMULARIOS  @@@@
  6. '@@@                                                         @@@@
  7. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  8. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  9. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  10.  
  11. Option Explicit
  12.  
  13. 'Declaración del Api SetLayeredWindowAttributes que establece _
  14.  la transparencia al form
  15.  
  16. Private Declare Function SetLayeredWindowAttributes Lib "user32" _
  17.                 (ByVal hWnd As Long, _
  18.                  ByVal crKey As Long, _
  19.                  ByVal bAlpha As Byte, _
  20.                  ByVal dwFlags As Long) As Long
  21.  
  22.  
  23. 'Recupera el estilo de la ventana
  24. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
  25.                 (ByVal hWnd As Long, _
  26.                  ByVal nIndex As Long) As Long
  27.  
  28.  
  29. 'Declaración del Api SetWindowLong necesaria para aplicar un estilo _
  30.  al form antes de usar el Api SetLayeredWindowAttributes
  31.  
  32. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
  33.                (ByVal hWnd As Long, _
  34.                 ByVal nIndex As Long, _
  35.                 ByVal dwNewLong As Long) As Long
  36.  
  37.  
  38. Private Const GWL_EXSTYLE = (-20)
  39. Private Const LWA_ALPHA = &H2
  40. Private Const WS_EX_LAYERED = &H80000
  41. 'Función para saber si formulario ya es transparente. _
  42.  Se le pasa el Hwnd del formulario en cuestión
  43.  
  44. Public Function Is_Transparent(ByVal hWnd As Long) As Boolean
  45. On Error Resume Next
  46.  
  47. Dim Msg As Long
  48.  
  49.     Msg = GetWindowLong(hWnd, GWL_EXSTYLE)
  50.        
  51.        If (Msg And WS_EX_LAYERED) = WS_EX_LAYERED Then
  52.           Is_Transparent = True
  53.        Else
  54.           Is_Transparent = False
  55.        End If
  56.  
  57.     If Err Then
  58.        Is_Transparent = False
  59.     End If
  60.  
  61. End Function
  62.  
  63. 'Función que aplica la transparencia, se le pasa el hwnd del form y un valor de 0 a 255
  64. Public Function Aplicar_Transparencia(ByVal hWnd As Long, _
  65.                                       Valor As Integer) As Long
  66.  
  67. Dim Msg As Long
  68.  
  69. On Error Resume Next
  70.  
  71. If Valor < 0 Or Valor > 255 Then
  72.    Aplicar_Transparencia = 1
  73. Else
  74.    Msg = GetWindowLong(hWnd, GWL_EXSTYLE)
  75.    Msg = Msg Or WS_EX_LAYERED
  76.    
  77.    SetWindowLong hWnd, GWL_EXSTYLE, Msg
  78.    
  79.    'Establece la transparencia
  80.    SetLayeredWindowAttributes hWnd, 0, Valor, LWA_ALPHA
  81.  
  82.    Aplicar_Transparencia = 0
  83.  
  84. End If
  85.  
  86.  
  87. If Err Then
  88.    Aplicar_Transparencia = 2
  89. End If
  90.  
  91. End Function
  92.  
  93.  
  94. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  95. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  96. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  97. '@@@@@@@                                                @@@@@@@@@
  98. '@@@@@@@      AHORA DEBES COLOCAR EN EL FORMULARIO,     @@@@@@@@@
  99. '@@@@@@@ EN EL EVENTO "LOAD" LA SIGUIENTE INSTRUCCIÓN : @@@@@@@@@
  100. '@@@@@@@     Call Aplicar_Transparencia(Me.hWnd, 150)   @@@@@@@@@
  101. '@@@@@@@                                                @@@@@@@@@
  102. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  103. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  104. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  105. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  106.  
  107.  



por ultimo, en el evento Form_load , llama este procedimiento:

 Call Aplicar_Transparencia(Me.hWnd, 150)

siendo 150 el nivel de trasparencia, el nivel minimo es 0 (es decir, el formulario es completamente invisible)
el valor maximo es 255 (es decir, el formulario no tiene nada de transparencia.


Espero que les sirva...

saludos.

87
Visual Basic 6.0 e inferiores / Dejo las funciones del archivo .INI
« en: Martes 9 de Septiembre de 2008, 18:47 »
Ya se, ya se...
Ya se que muchos manipulas los achivos .INI, seguramente ya tienes sus funciones, bueno para estos no este mensaje...
Este mensaje es para aquellos que aun tienen errores en su codigo de como manejar los archivos .INI

Copien lo siguiente en un modulo standar.

Código: Text
  1. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  2. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  3. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ARCHIVO INI EN VB6.0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  4. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ [NILSON JIMENEZ]     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  5. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 28/ENERO/2008=       @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  6. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  7. '@@@@@@@@@@@@@@@@@@@@@@@@@@@                                       @@@@@@@@@@@@@@@@@@
  8. '@@@@@@@@@@@@@@@@@@@@@@@@@@@    I            N                 I   @@@@@@@@@@@@@@@@@@
  9. '@@@@@@@@@@@@@@@@@@@@@@@@@@@                                       @@@@@@@@@@@@@@@@@@
  10. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  11. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  12. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  13.  
  14. Public Declare Function GetPrivateProfileString Lib "kernel32" _
  15. Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, _
  16. ByVal lpKeyName As Any, ByVal lpDefault As String, _
  17. ByVal lpReturnedString As String, ByVal nSize As Long, _
  18. ByVal lpFileName As String) As Long
  19.  
  20. Public Declare Function WritePrivateProfileString Lib "kernel32" _
  21. Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, _
  22. ByVal lpKeyName As Any, ByVal lpString As Any, _
  23. ByVal lpFileName As String) As Long
  24.  
  25. Public Function GetINI(ArchivoINI As String, Seccion As String, Clave As _
  26. String, Default)
  27.  
  28. Dim Temp As String * 256
  29. Dim Longitud As Integer
  30.  
  31. Temp = Space$(256)
  32. Longitud = GetPrivateProfileString(Seccion, Clave, Default, Temp, 255, ArchivoINI)
  33. GetINI = Left$(Temp, Longitud)
  34.  
  35. End Function
  36.  
  37.  
  38. Sub WriteINI(ArchivoINI As String, Seccion As String, Clave As String, Valor)
  39. Dim n As Integer
  40. Dim Temp As String
  41.  
  42. Temp = Valor
  43.  
  44. 'Reemplazar todos los caracteres CR/LF con espacios
  45. For n = 1 To Len(Valor)
  46.     If Mid$(Valor, n, 1) = vbCr Or Mid$(Valor, n, 1) = vbLf Then
  47.         Mid$(Valor, n) = " "
  48.     End If
  49. Next n
  50.  
  51. n = WritePrivateProfileString(Seccion, Clave, Temp, ArchivoINI)
  52. End Sub
  53.  
  54. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  55. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  56. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  57. '@@@@@@@ AHORA SOLO PARA "LEER" UN DATO DE INFORMACIÓN SOLO TIENE QUE COPIAR @@@@@@@@
  58. '@@@@@@@ LA SIGUIENTE INTRUCCIÓN EN EL LUGAR DONDE QUIERA INSERTAR EL DATO   @@@@@@@@
  59. '@@@@@@@ GetINI(DireccionINI, "Sectores", "Clave", "?")                      @@@@@@@@
  60. '@@@@@@@                                                                     @@@@@@@@
  61. '@@@@@@@ EJEMPLO:                                                            @@@@@@@@
  62. '@@@@@@@ Nom_Usu = GetINI(DireccionINI, "Sectores", "NombreUsuario", "?")    @@@@@@@@
  63. '@@@@@@@ La variable Nom_Usu debe almacenar la información que se encuentre  @@@@@@@@
  64. '@@@@@@@ en [Sectores] NombreUsuario=                                        @@@@@@@@
  65. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  66. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  67. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  68.  
  69. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  70. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  71. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  72. '@@@@@@@ PARA "GUARDAR" UN DATO DE INFORMACIÓN SOLO TIENE QUE INSERTAR LA   @@@@@@@@@
  73. '@@@@@@@ SIGUIENTE INSTRUCCIÓN...                                           @@@@@@@@@
  74. '@@@@@@@ Call WriteINI(DireccionINI, "Sectores", "Clave", Nom_Usu)          @@@@@@@@@
  75. '@@@@@@@                                                                    @@@@@@@@@
  76. '@@@@@@@ EJEMPLO:                                                           @@@@@@@@@
  77. '@@@@@@@ Call WriteINI(DireccionINI, "Sectores", "NombreUsuario", Nom_Usu)  @@@@@@@@@
  78. '@@@@@@@ La variable que inserta la información a guardar es Nom_Usu, esta  @@@@@@@@@
  79. '@@@@@@@ información se guarda en [Sectores] NombreUsuario=                 @@@@@@@@@
  80. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  81. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  82. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  83.  
  84.  


Las intrucciones de como manejar estas funciones estan indicadas en el mismo modulo como comentarios...

Bueno... saludos y espero que les sirva.

88
Estas dos funciones pueden servirles a muchos, esta las hice hace unos meses, espero que les guste. Es para crear un bloc de notas donde puedes guardar información y luego recuperar, la información guardada se almacena en un orden de filas y columnas. Estas funciones debesw colocarlas en un modulo Estandar y luego llamarlas desde cualquier parte de tu programa.

Para Super Novatos:
* Abre Visual Basic en un proyecto Estandar en blanco
* Ves al menu "Proyecto" y luego en "Agregar modulo"
Se edespliega una ventana llamada "Agregar Modulo", dale click en Abrir
* Copia y pega el siguiente codigo en esa ventana:

Código: Text
  1. Function LeerDatoMATRIZ(Colum As Long, Fila As Long, RutaArchivo As String) As Variant
  2. 'Lee datos de una cadena separada por comas.. ejemplo:
  3. ' xxxxx, xxxxx, xxxxx , xxxxx, etc...
  4. Dim NumLine As Long
  5. Dim Cadena1 As String
  6. Dim Cadena As String
  7. Dim Dato As Variant
  8.  
  9. If Dir(RutaArchivo) = "" Then       'Comprueba si existe archivo, en caso de no existir, lo crea.
  10.     Open RutaArchivo For Output As #1
  11.     Print #1, "Archivo de Texto creado para guardar información" & vbCrLf & "jimbenit@hotmail.com"
  12.     Close #1
  13. End If
  14.    
  15.    
  16.  
  17. Open RutaArchivo For Input As #1        'Copia la fila completa en la variable cadena
  18. While Not EOF(1)
  19.     Line Input #1, Cadena1
  20.     NumLine = NumLine + 1
  21.     If NumLine = Fila Then
  22.         Cadena = Cadena1
  23.     End If
  24. Wend
  25. Close #1
  26.        
  27.         Dim NumLet As Long
  28.         Dim Cont As Long
  29.         Dim Letr As String
  30.         Dim PosComas() As Long
  31.         Dim NumCarac As Long
  32.  
  33.         NumLet = Len(Cadena)
  34.         For i = 1 To NumLet     'Cuenta las comas dentro de la cadena
  35.             Letr = Mid(Cadena, i, 1)
  36.             If Asc(Letr) = 44 Then
  37.                 Cont = Cont + 1
  38.             End If
  39.         Next i
  40.  
  41.         If Colum > Cont + 1 Then Exit Function  'Columna vacia
  42.  
  43.         ReDim PosComas(Cont)
  44.         Cont = 0
  45.         For i = 1 To NumLet     'Coloca las posiciones de las comas dentro del vector
  46.             Letr = Mid(Cadena, i, 1)
  47.             If Asc(Letr) = 44 Then
  48.                 Cont = Cont + 1
  49.                 PosComas(Cont) = i
  50.             End If
  51.         Next i
  52.  
  53.         If Colum = UBound(PosComas()) + 1 Then         'Escribe el dato buscado en la variable dato
  54.             Dato = Mid(Cadena, PosComas(Colum - 1) + 1)
  55.         Else
  56.             Dato = Mid(Cadena, PosComas(Colum - 1) + 1, PosComas(Colum) - 1 - PosComas(Colum - 1))
  57.         End If
  58.    
  59.             'El siguiente bloque de código elimina las comillas
  60.             'del principio y final de la variable Dato.
  61.         NumLet = Len(Dato)
  62.         If Left(Dato, 1) = Chr(34) Then
  63.             Dato = Mid(Dato, 2)
  64.         End If
  65.         NumLet = Len(Dato)
  66.         If Right(Dato, 1) = Chr(34) Then
  67.             Dato = Mid(Dato, 1, NumLet - 1)
  68.         End If
  69.        
  70.  
  71. LeerDatoMATRIZ = Dato
  72.  
  73.  
  74. End Function
  75.  
  76.  
  77.  
  78. Sub EscribirDatoMATRIZ(Colum As Long, Fila As Long, Dato As Variant, RutaArchivo As String)
  79. 'Guarda datos en un bloc notas en forma de comas... utiliza el bloc
  80. 'como una matriz ordenada por filas y columnas... [Mayo 5 / 2008]
  81.  
  82. Dim Contador As Double
  83. Dim Vector() As Variant
  84. Dim Caracter As String
  85. Dim Max As Double
  86. Dim Linea As Long
  87. Dim Cadena As String
  88. Dim NumLet As Long
  89. Dim Letr As String
  90. Dim Cont As Long
  91. Dim PosComas() As Long
  92. Dim Pedazo1 As String
  93. Dim Pedazo2 As String
  94. Dim Comas_Add As Long
  95.  
  96. If Dir(RutaArchivo) = "" Then           'Comprueba si existe archivo, en caso de no existir, lo crea.
  97.     Open RutaArchivo For Output As #1
  98.     Print #1, "Archivo de Texto creado para guardar información" & vbCrLf & "jimbenit@hotmail.com"
  99.     Close #1
  100. End If
  101.  
  102. Linea = Fila
  103.  
  104. For j = 1 To 2          'Introduce todas las lineas del Bloc notas en un Vector llamado Vector()
  105.     Open RutaArchivo For Input As #1
  106.     While Not EOF(1)                'Cuenta las lineas del Bloc Notas
  107.         Line Input #1, Caracter
  108.         i = i + 1
  109.         If j = 1 Then
  110.             Contador = i
  111.         ElseIf j = 2 Then       'Si j = 2 , se escriben las lineas dentro del vector
  112.             Vector(i) = Caracter
  113.         End If
  114.     Wend
  115.     Close #1
  116.     If j = 1 Then
  117.         If Linea > Contador Then        'Define el tamaño del vector
  118.             ReDim Vector(1 To Linea)
  119.             Max = Linea
  120.         Else
  121.             ReDim Vector(1 To Contador)
  122.             Max = Contador
  123.         End If
  124.         i = 0
  125.     End If
  126. Next j
  127.  
  128.  
  129. For i = 1 To Max        'Obtiene la fila en string separada por comas
  130.     If i = Fila Then
  131.         Cadena = Vector(i)
  132.     End If
  133. Next i
  134.  
  135.             'Obtención de las posiciones de las comas
  136. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  137.         NumLet = Len(Cadena)
  138.         For i = 1 To NumLet     'Cuenta las comas dentro de la cadena
  139.             Letr = Mid(Cadena, i, 1)
  140.             If Asc(Letr) = 44 Then
  141.                 Cont = Cont + 1
  142.             End If
  143.         Next i
  144.  
  145.         If Colum > Cont + 1 Then        'Columna vacia
  146.             Comas_Add = Colum - (Cont + 1)
  147.             For i = 1 To Comas_Add
  148.                 Cadena = Cadena & ", "
  149.             Next i
  150.             Cont = Colum - 1
  151.         End If
  152.        
  153.         NumLet = Len(Cadena)
  154.         ReDim PosComas(Cont)
  155.         Cont = 0
  156.         For i = 1 To NumLet     'Coloca las posiciones de las comas dentro del vector
  157.             Letr = Mid(Cadena, i, 1)
  158.             If Asc(Letr) = 44 Then
  159.                 Cont = Cont + 1
  160.                 PosComas(Cont) = i
  161.             End If
  162.         Next i
  163. '@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  164.  
  165. 'Añadiendo el dato a la cadena [Elimina el dato anterior en esa posición]
  166. If Cont = 0 Then
  167.     Cadena = Dato
  168. ElseIf Colum = 1 Then                           'Coloca el dato al principio
  169.     Cadena = Dato & Mid(Cadena, PosComas(1))
  170. ElseIf Colum = UBound(PosComas()) + 1 Then      'Coloca el dato al final
  171.     Cadena = Mid(Cadena, 1, PosComas(Colum - 1)) & Dato
  172. Else
  173.     Pedazo1 = Mid(Cadena, 1, PosComas(Colum - 1))
  174.     Pedazo2 = Mid(Cadena, PosComas(Colum))
  175.     Cadena = Pedazo1 & Dato & Pedazo2
  176. End If
  177.  
  178. 'Escribiendo en el Bloc Notas
  179. Open RutaArchivo For Output As #1
  180. For i = 1 To Max
  181.     If i = Linea Then
  182.         Vector(i) = Cadena
  183.         Print #1, Vector(i)
  184.     Else
  185.         Print #1, Vector(i)
  186.     End If
  187. Next i
  188. Close #1
  189.  
  190.  
  191.  
  192. End Sub
  193.  
  194.  
  195.  


* Cierra la venta de codigo
*Dale doble click en el formulario:
Debe abrirse la venta codigo con las palabras
Código: Text
  1. Private Sub Form_Load()
  2.  
  3. End Sub
  4.  
  5.  

 y escribe esta linea en medio de las lineas anteriores

Código: Text
  1. Call EscribirDatoMATRIZ(4, 5, "Hola mundo!!", "C:/MiBlocNotas.txt")
  2.  

*Ejecuta tu aplicación y luego ves a tu disco local C: y veras un archivo de texto con el nombre MiBlocNotas

Saludos.

Páginas: 1 2 3 [4]