Archivos !!!!
Hola, estoy usando un archivo para guardar algunos datos, el tema es que no puedo borrar un intems en particular. esto es lo que tengo .
para guardar:
Open "c:programacategorias.cat" For Append As #1
datos.rtitulo = Text1.Text
Write #1, datos.rtitulo
Close #1
y para leer :
Dim datos As registro
Open "c:programacategorias.cat" For Input As #1
Do While Not EOF(1)
Input #1, datos.rtitulo
List1.AddItem datos.rtitulo
Loop
Close #1
Como puedo hacer para borrar un registro cualquiera que se encuentre en el archivo???.-
Tiene que ser indexsado de alguna forma ??
Gracias !!
para guardar:
Open "c:programacategorias.cat" For Append As #1
datos.rtitulo = Text1.Text
Write #1, datos.rtitulo
Close #1
y para leer :
Dim datos As registro
Open "c:programacategorias.cat" For Input As #1
Do While Not EOF(1)
Input #1, datos.rtitulo
List1.AddItem datos.rtitulo
Loop
Close #1
Como puedo hacer para borrar un registro cualquiera que se encuentre en el archivo???.-
Tiene que ser indexsado de alguna forma ??
Gracias !!
hola,
para trabajar con registros y tipos de datos definidos por el usuario es aconsejable, (o mejor dicho, és más cómodo), utilizar el modo de acceso aleatorio.
si por ejemplo tienes
Type Registro
IdDato As Integer
rTitulo As String * 25
End Type
para añadir registros puedes hacer
Open "c:programacategorias.cat" For Random As #1 Len = Len(Datos)
put #1, LOF(1) / Len(Datos) + 1, Datos
Close #1
Entonces, si tienes los datos cargados en una lista, puedes acceder a ellos directamente por su número de registro. Supongamos que estan en un ListBox,
Open "c:programacategorias.cat" For Random As #1 Len = Len(Datos)
Get #1, List1.ListIndex + 1, Datos
Close #1
MsgBox Datos.rTitulo
para modificar el dato es lo mismo que el acceso, pero en lugar del "Get #1", con el "Put #1"
Y para eliminarlo, serÃa:
Dim Cont As Integer
Open "c:programacategorias.cat" For Random As #1 Len = Len(Datos)
Open "c:programacategorias.cat.temp" For Random As #2 Len = Len(Datos)
For cont=1 to LOF(1) / Len(Datos)
get #1,cont,dato
if cont<>List1.ListIndex+1 Then put #2, ,dato
Next
Close #1: Close #2
Kill "c:programacategorias.cat"
Name "c:programacategorias.cat.temp" As "c:programacategorias.cat"
Saludos.
para trabajar con registros y tipos de datos definidos por el usuario es aconsejable, (o mejor dicho, és más cómodo), utilizar el modo de acceso aleatorio.
si por ejemplo tienes
Type Registro
IdDato As Integer
rTitulo As String * 25
End Type
para añadir registros puedes hacer
Open "c:programacategorias.cat" For Random As #1 Len = Len(Datos)
put #1, LOF(1) / Len(Datos) + 1, Datos
Close #1
Entonces, si tienes los datos cargados en una lista, puedes acceder a ellos directamente por su número de registro. Supongamos que estan en un ListBox,
Open "c:programacategorias.cat" For Random As #1 Len = Len(Datos)
Get #1, List1.ListIndex + 1, Datos
Close #1
MsgBox Datos.rTitulo
para modificar el dato es lo mismo que el acceso, pero en lugar del "Get #1", con el "Put #1"
Y para eliminarlo, serÃa:
Dim Cont As Integer
Open "c:programacategorias.cat" For Random As #1 Len = Len(Datos)
Open "c:programacategorias.cat.temp" For Random As #2 Len = Len(Datos)
For cont=1 to LOF(1) / Len(Datos)
get #1,cont,dato
if cont<>List1.ListIndex+1 Then put #2, ,dato
Next
Close #1: Close #2
Kill "c:programacategorias.cat"
Name "c:programacategorias.cat.temp" As "c:programacategorias.cat"
Saludos.