Algo de archivos alguien sabe?

Iniciado por n3ts4mura1, 16 Agosto 2006, 16:31 PM

0 Miembros y 1 Visitante están viendo este tema.

n3ts4mura1

Tengo esto :
6 cajas de texto en 3 de ellas inreso nombre apellido y edad y en las otras 3 muestro los resultados de mi archivo.

este es el codigo:

Private Type T_Registro
    nombre As String * 20
    apellido As String * 20
    edad As String * 20
End Type

Dim registro As T_Registro


Private Sub Command1_Click()
Open "personas.txt" For Random As #1
    registro.nombre = Text1.Text
    registro.apellido = Text2.Text
    registro.edad = Text3.Text
    Put #i, 1, registro
Close #1
End Sub

Private Sub Command2_Click()
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""

End Sub

Private Sub Command3_Click()
Open "personas.txt" For Random As #1
Put #1, 1, registro
    Text4.Text = registro.nombre
    Text5.Text = registro.apellido
    Text6.Text = registro.edad
Close #1
End Sub


ahora mi duda es la siguiente se guardan en el archivo personas.txt pero si agrego otro se me borra el que tenia anteriormente y me deja el actual y yo quiero que el archivo me vaya guardando todos los usuarios que ingreso .

alguien que me ayude con esto porfavor o me de una idea bueno gracias saludos.

elmaro

 Put #i, 1, registro

reemplaza el 1 x el numero de registros,. si pones el ultimo numemro escribir al final del archivo

n3ts4mura1

elmaro seria algo como esto o no?:

contador.
i=1
y el put quedaria de esta forma:
put #1,i,registro
y abajo de esto iria:
i=i+1

algo haci seria? porque si es haci no me resulta =P

Cicatrix

tienes que cambiar el modo de acceso RANDOM por APPEND.
Como sabrás, los modos de acceso son los que determinan la forma en que serán agregadas las nuevas líneas. Ellos son: bianry, ramdom y append.

Si te interesa saber más me puedes contactar con toda tranquilidad  ;D

elmaro

si pero para acer ese tipo de trabajo se utiliza la opcion RANDOM ., ya que despues tiene que acceder a los datos guardados,. y para eso utiliza variables de tamaño especifico
utilis esto para saber el numero de rejistros y posisionarte en el ultimo


On Error Resume Next
Close
Open "personas.txt" For Random As #1 Len = 60 'este numero es la cantidad de caracteres que le reservas(20+20+20=60)
LONGITUDFICH = LOF(1)
NUMREGS = LONGITUDFICH / 60 ' el mismo numero
RegEscribir = NUMREGS + 1


ahora para escribir en el ultimo registro seria...


Put #i, RegEscribir, registro


espero que te sirva,. no lo he probado el codigo ,. pero supongo que funciona xq lo sake de una aplicacion que yo hize hace unos años
suerte man


El MaRo!