• Sábado 27 de Abril de 2024, 02:12

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.


Mensajes - Jimbenit

Páginas: 1 ... 13 14 [15]
351
Moskito. Revisa el siguiente codigo, no esta bien.

Código: Text
  1. Function ConvertAscii(ByRef as_Cadena As String) As String
  2.       If as_Cadena = vbNullString Then
  3.            ConvertAscii = vbNullString
  4.       Else
  5.            ConvertAscii = CStr(AscB(Left(as_Cadena,1))) & ConvertAscii(Right(as_Cadena,Len(as_Cadena) - 1))
  6.       End If
  7.  End Function
  8.  

352
Visual Basic para principiantes / Re: Encuentra el error
« en: Viernes 12 de Septiembre de 2008, 23:07 »
Bueno, siguiendo con los errores, te tengo uno


imagina que se quiere hacer una funcion que arroje la secuencia de la siguiente sumatoria

1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + ...     ... + 1/n

se tiene el siguiente codigo:

Código: Text
  1. Function Secuencia(Nro_Iterac As Integer) As Double
  2.  
  3. If Nro_Iterac = 1 Then
  4.     Secuencia = 1
  5. Else
  6.     Secuencia =
  7. End If
  8.  
  9.  
  10.  
  11. End Function
  12.  
  13.  


Puedes decirme cual es la parte del codigo que hace falta para originar esta secuencia, evidentemente, este es el Error.

353
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.



354
Visual Basic 6.0 e inferiores / Re: Transpariencia a los formularios
« en: Viernes 12 de Septiembre de 2008, 18:37 »
...Buen aporte Nebire...
Saludos.

355
Visual Basic para principiantes / Re: microsoft visual studio 2008 descargar
« en: Viernes 12 de Septiembre de 2008, 00:10 »
VS 2008 es gratis
Lo esta distribuyendo Microsoft desde su pagina principal (Por lo tanto, ya no es pirateria)

356
Visual Basic para principiantes / Re: datagrid
« en: Jueves 11 de Septiembre de 2008, 20:28 »
Código: Text
  1. Private Sub Form_Load()
  2.  
  3. Dim Cadena As String
  4. Me.AutoRedraw = True
  5.  
  6.  
  7. For i = 1 To 10
  8.     Me.Print "Bienvenida amiga"
  9. Next i
  10. Me.Print "Besos", , , , "Yochy 20"
  11.  
  12.  
  13.  
  14. End Sub
  15.  
  16.  


Espero volverte a ver por aca.

357
Visual Basic para principiantes / Re: Encuentra el error
« en: Jueves 11 de Septiembre de 2008, 20:09 »
Echale un vistazo a este codigo:

Modulo1. bas

Código: Text
  1. Public Acum As Integer
  2.  
  3.  
  4. Function Factorial(X As Integer) As Integer
  5.  
  6. 'El factorial de cero es 1
  7. 'Esta es la CONDICION de SALIDA
  8. If X - 1 = 0 Then Exit Function
  9.  
  10.  
  11. If Acum = 0 Then Acum = 1
  12. Acum = X * Acum
  13.  
  14. Factorial = Factorial(X - 1)
  15. Factorial = Acum
  16.  
  17. End Function
  18.  
  19.  


y en el form_load
coloca esto


Código: Text
  1. Private Sub Form_Load()
  2. Dim N As Integer
  3.  
  4. N = Factorial(6)
  5. Print N
  6.  
  7. End Sub
  8.  
  9.  


Y lo correspondiente a tu problema:

1) Como anoto Begeo, Private en un modulo
2) Esta funcion se va al infinito, no hay una condicion de salida para la recursividad (Error de desbordamiento, la funcion se va al infinito negativo)
3) Esta funcion es el procedimiento Factorial de matematicas, pues no hace nada , no multiplica nada (error de metodologia)


Nota:
Hagamos problemas simples ( de esos cotidianos, no los rebuscados!!) , acaso esta seccion del foro no se llama:  Visual Basic para principiantes

358
Visual Basic para principiantes / Re: datagrid
« en: Jueves 11 de Septiembre de 2008, 18:59 »
Si te reportas de nuevo , te ayudo (esto es debido a que solo tienes un mensaje, lo que me hace pensar que entraste aqui solo por casualidad y tal vez ya se te olvido esta pagina, asi que creo que si te reportas de nuevo estaras en contacto... .. bueno... si lees esto... saludos... reportate!!!)

359
Visual Basic para principiantes / Re: Funcion para Saber si Un Arreglo Esta Vacio
« en: Miércoles 10 de Septiembre de 2008, 20:25 »
La discusión entre Mosquito y Nebire fue muy, muy buena e instructiva (Gracias Moskito y gracias Nebire por brindarnos esa conversación tan instructiva).

Me entretube leyendola, fue muy divertida y llena de ejemplos, muy ilustrativa, pero el novato MArio, quien solicito la ayuda , si entendió lo que ustedes dijeron???


 :mellow:

Bueno Saludos , y todos estamos aqui para aprender!!....

Código: Text
  1. Private Sub Form_Load()
  2.     Dim Nilson As String
  3.     MsgBox ("Saludos"), , "Nilson Yair"
  4. End Sub
  5.  
  6.  

360
Visual Basic 6.0 e inferiores / Re: Transpariencia a los formularios
« en: Miércoles 10 de Septiembre de 2008, 16:28 »
Bien, mira.. la funcion que hace la llamada de la api es original de de win xp, creo que no funcionará (aunque no he hecho la prueba) pero me gustaria que hicieras la prueba...

saludos

361
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.

362
Alguien ha utilizado estas funciones?, pues me gustaria saber sus comentarios.
Saludos


P.D. ===> Saludenme por lo menos.

363
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.

364
Visual Basic 6.0 e inferiores / Re: convertir texto a mp3
« en: Jueves 28 de Agosto de 2008, 19:57 »
No escribas dos veces el mismo post, (esto es crear SPAM), los spam son muy desagradables.
Saludos.

365
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 ... 13 14 [15]