Programación General > Visual Basic 6.0 e inferiores

 Dejo dos func. para utilizar un bloc de notas como memoria

(1/1)

Jimbenit:
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 ---Function LeerDatoMATRIZ(Colum As Long, Fila As Long, RutaArchivo As String) As Variant'Lee datos de una cadena separada por comas.. ejemplo:' xxxxx, xxxxx, xxxxx , xxxxx, etc...Dim NumLine As LongDim Cadena1 As StringDim Cadena As StringDim Dato As Variant If Dir(RutaArchivo) = "" Then       'Comprueba si existe archivo, en caso de no existir, lo crea.    Open RutaArchivo For Output As #1    Print #1, "Archivo de Texto creado para guardar información" & vbCrLf & "jimbenit@hotmail.com"    Close #1End If         Open RutaArchivo For Input As #1        'Copia la fila completa en la variable cadenaWhile Not EOF(1)    Line Input #1, Cadena1    NumLine = NumLine + 1    If NumLine = Fila Then        Cadena = Cadena1    End IfWendClose #1                Dim NumLet As Long        Dim Cont As Long        Dim Letr As String        Dim PosComas() As Long        Dim NumCarac As Long         NumLet = Len(Cadena)        For i = 1 To NumLet     'Cuenta las comas dentro de la cadena            Letr = Mid(Cadena, i, 1)            If Asc(Letr) = 44 Then                Cont = Cont + 1            End If        Next i         If Colum > Cont + 1 Then Exit Function  'Columna vacia         ReDim PosComas(Cont)        Cont = 0        For i = 1 To NumLet     'Coloca las posiciones de las comas dentro del vector            Letr = Mid(Cadena, i, 1)            If Asc(Letr) = 44 Then                Cont = Cont + 1                PosComas(Cont) = i            End If        Next i         If Colum = UBound(PosComas()) + 1 Then         'Escribe el dato buscado en la variable dato            Dato = Mid(Cadena, PosComas(Colum - 1) + 1)        Else            Dato = Mid(Cadena, PosComas(Colum - 1) + 1, PosComas(Colum) - 1 - PosComas(Colum - 1))        End If                'El siguiente bloque de código elimina las comillas            'del principio y final de la variable Dato.        NumLet = Len(Dato)        If Left(Dato, 1) = Chr(34) Then            Dato = Mid(Dato, 2)        End If        NumLet = Len(Dato)        If Right(Dato, 1) = Chr(34) Then            Dato = Mid(Dato, 1, NumLet - 1)        End If         LeerDatoMATRIZ = Dato  End Function   Sub EscribirDatoMATRIZ(Colum As Long, Fila As Long, Dato As Variant, RutaArchivo As String)'Guarda datos en un bloc notas en forma de comas... utiliza el bloc'como una matriz ordenada por filas y columnas... [Mayo 5 / 2008] Dim Contador As DoubleDim Vector() As VariantDim Caracter As StringDim Max As DoubleDim Linea As LongDim Cadena As StringDim NumLet As LongDim Letr As StringDim Cont As LongDim PosComas() As LongDim Pedazo1 As StringDim Pedazo2 As StringDim Comas_Add As Long If Dir(RutaArchivo) = "" Then           'Comprueba si existe archivo, en caso de no existir, lo crea.    Open RutaArchivo For Output As #1    Print #1, "Archivo de Texto creado para guardar información" & vbCrLf & "jimbenit@hotmail.com"    Close #1End If Linea = Fila For j = 1 To 2          'Introduce todas las lineas del Bloc notas en un Vector llamado Vector()    Open RutaArchivo For Input As #1    While Not EOF(1)                'Cuenta las lineas del Bloc Notas        Line Input #1, Caracter        i = i + 1        If j = 1 Then            Contador = i        ElseIf j = 2 Then       'Si j = 2 , se escriben las lineas dentro del vector            Vector(i) = Caracter        End If    Wend    Close #1    If j = 1 Then        If Linea > Contador Then        'Define el tamaño del vector            ReDim Vector(1 To Linea)            Max = Linea        Else            ReDim Vector(1 To Contador)            Max = Contador        End If        i = 0    End IfNext j  For i = 1 To Max        'Obtiene la fila en string separada por comas    If i = Fila Then        Cadena = Vector(i)    End IfNext i             'Obtención de las posiciones de las comas'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@        NumLet = Len(Cadena)        For i = 1 To NumLet     'Cuenta las comas dentro de la cadena            Letr = Mid(Cadena, i, 1)            If Asc(Letr) = 44 Then                Cont = Cont + 1            End If        Next i         If Colum > Cont + 1 Then        'Columna vacia            Comas_Add = Colum - (Cont + 1)            For i = 1 To Comas_Add                Cadena = Cadena & ", "            Next i            Cont = Colum - 1        End If                NumLet = Len(Cadena)        ReDim PosComas(Cont)        Cont = 0        For i = 1 To NumLet     'Coloca las posiciones de las comas dentro del vector            Letr = Mid(Cadena, i, 1)            If Asc(Letr) = 44 Then                Cont = Cont + 1                PosComas(Cont) = i            End If        Next i'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 'Añadiendo el dato a la cadena [Elimina el dato anterior en esa posición]If Cont = 0 Then    Cadena = DatoElseIf Colum = 1 Then                           'Coloca el dato al principio    Cadena = Dato & Mid(Cadena, PosComas(1))ElseIf Colum = UBound(PosComas()) + 1 Then      'Coloca el dato al final    Cadena = Mid(Cadena, 1, PosComas(Colum - 1)) & DatoElse    Pedazo1 = Mid(Cadena, 1, PosComas(Colum - 1))    Pedazo2 = Mid(Cadena, PosComas(Colum))    Cadena = Pedazo1 & Dato & Pedazo2End If 'Escribiendo en el Bloc NotasOpen RutaArchivo For Output As #1For i = 1 To Max    If i = Linea Then        Vector(i) = Cadena        Print #1, Vector(i)    Else        Print #1, Vector(i)    End IfNext iClose #1   End Sub   

* Cierra la venta de codigo
*Dale doble click en el formulario:
Debe abrirse la venta codigo con las palabras

--- Código: Text ---Private Sub Form_Load() End Sub  
 y escribe esta linea en medio de las lineas anteriores


--- Código: Text ---Call EscribirDatoMATRIZ(4, 5, "Hola mundo!!", "C:/MiBlocNotas.txt") 
*Ejecuta tu aplicación y luego ves a tu disco local C: y veras un archivo de texto con el nombre MiBlocNotas

Saludos.

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


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

Navegación

[0] Índice de Mensajes

Ir a la versión completa