Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' Gambas class file
- Public RutaDatos As String = User.home & "/Comentarios.dat"
- Public Struct datos
- asunto As String
- color As Integer
- fecha As Date
- descripcion As String
- End Struct
- Private lista As Datos[]
- Private $indice As Integer
- Public Sub _new()
- lista = New Datos[] ' inicio array de datos de listas
- End
- Public Sub add(d As Datos)
- lista.Add(d)
- Message.Info(("Registro Añadido")) ' lo pongo con doble parentesis para que pueda se traducido a otros idiomas.
- End
- Public Function rescata(indice As Integer) As Datos
- Dim registro As New Datos
- Try registro = lista[indice]
- If Error Then
- Message.Error("Ha habido un problema al intentar leer el registro indicado")
- Return Null
- Else
- $indice = indice
- Return registro
- Endif
- End
- Public Function erase(indice As Integer) As Boolean
- Try lista.Delete(indice)
- If Error Then
- Message.Error("Ha habido un problema al intentar Borrar el registro indicado")
- Return False
- Else
- Return True
- Endif
- End
- Public Sub setIndice(a As Integer)
- 'comprobación de que a es admisible
- If a < 0 Then
- Message.Error(("No es posible ir a ese indice, ya hemos llegado al primero"))
- Return
- Endif
- If a > lista.max Then
- Message.Error(("No es posible ir a ese indice ya hemos llegado al ultimo"))
- Return
- Endif
- $indice = a
- End
- Public Sub getIndice() As Integer
- Return $indice
- End
- Public Function getNumeroRegistros() As Integer
- Return lista.max
- End
- Public Sub modificar(d As Datos, i As Integer)
- Try lista[i] = d
- If Error Then
- Message.Error(("Se ha producido un error al intentar actualizar los datos"))
- Else
- Message.Info(("Registro modificado correctamente"))
- Endif
- End
- Public Sub guardardatos()
- Dim contenido As String
- Dim linearegistro As String
- Dim registrotmp As Datos
- Dim a As Integer
- For a = 0 To lista.max ' tambien vale lista.count-1
- registrotmp = lista[a]
- linearegistro = registrotmp.asunto & "|" & registrotmp.color & "|" & registrotmp.descripcion & "|" & registrotmp.fecha
- contenido &= linearegistro & gb.Cr 'tambien vale poner "\n"
- Next
- File.Save(RutaDatos, contenido)
- End
- Public Sub leerdatos()
- Dim contenido As String
- Dim arrayLineas As String[]
- Dim DatosLinea As String[]
- Dim registrotmp As Datos
- Dim a As Integer
- Dim f As String 'fecha en formato texto
- contenido = File.Load(RutaDatos)
- arrayLineas = Split(contenido, gb.CrLf)
- For a = 0 To arrayLineas.Max
- If arrayLineas[a] <> "" Then
- DatosLinea = Split(arrayLineas[a], "|")
- registrotmp = New Datos 'esta linea es muy importante ya que reinstancia la variable
- registrotmp.asunto = DatosLinea[0]
- registrotmp.color = Val(DatosLinea[1])
- registrotmp.descripcion = DatosLinea[2]
- f = DatosLinea[3]
- registrotmp.fecha = Date(Mid$(f, 7, Len(f)), Mid$(f, 1, 2), Mid$(f, 4, 2))
- lista.Add(registrotmp)
- Endif
- Next
- End
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement