Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: n3ts4mura1 en 16 Agosto 2006, 16:31 pm



Título: Algo de archivos alguien sabe?
Publicado por: n3ts4mura1 en 16 Agosto 2006, 16:31 pm
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.


Título: Re: Algo de archivos alguien sabe?
Publicado por: elmaro en 16 Agosto 2006, 16:49 pm
 
Código:
Put #i, 1, registro

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


Título: Re: Algo de archivos alguien sabe?
Publicado por: n3ts4mura1 en 16 Agosto 2006, 17:48 pm
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


Título: Re: Algo de archivos alguien sabe?
Publicado por: Cicatrix en 16 Agosto 2006, 18:30 pm
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


Título: Re: Algo de archivos alguien sabe?
Publicado por: elmaro en 16 Agosto 2006, 18:39 pm
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

Código:
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...

Código:
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!


Título: Re: Algo de archivos alguien sabe?
Publicado por: n3ts4mura1 en 16 Agosto 2006, 19:48 pm
gracias.