Visual Basic - Manejo de archivos aleatorios

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Manejo de archivos aleatorios

Publicado por Juan (1 intervención) el 25/08/2025 19:54:39
Buenas tardes, como andan?? disculpen las molestias!! les hago una consulta. Estoy haciendo un pequeño programa con visual basic 6 y archivos aleatorios. Solo me falta que funcione el boton de consultas, el codigo ya lo tengo y ahi se los paso. No encuentro el error. Muchas gracias!! Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Manejo de archivos aleatorios

Publicado por Sah1d Ra (202 intervenciones) el 05/09/2025 17:57:50
Saludos, me costo analizar el código pero lo que no entendi lo modifique

espero te agrade y los metodos te puedan funcionar en un futuro, es algo pequeño
pero con mas tiempo puedes lograr muchas cosas.

te recomiendo uses el espaciado indentación ya que es muy importante para
entender mejor el código, para ti o alguien mas. agregue algo que debes de checar
a mi forma de pensar siempre el "Option Explicit", y tambien TextBox y Label como
arreglo de controles.

haber que tal me ca con tus comentarios con las modificaciones.

Felices líneas de programac10n
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 145
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Manejo de archivos aleatorios

Publicado por Sah1d Ra (202 intervenciones) el 05/09/2025 18:24:10
PD, hizo falta agregar un remplazo de "::" por vbCrLf, puede ser usado una vez o cinco ocasiones, tu eliges donde.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Christian M
Val: 119
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Manejo de archivos aleatorios

Publicado por Christian M (13 intervenciones) el 03/12/2025 23:27:28
Mira hice varias correcciones fijate ...

' Estructura de datos
Private Type T_contacto
Documento As String * 10
Nombre As String * 40
Apellido As String * 50
Direccion As String * 40
Telefono As String * 20
Notas As String * 250
End Type

' Variables
Dim contacto As T_contacto
Dim RegActual As Long
Dim RegUltimo As Long

Private Sub Form_Load()
' Inicializamos el combo de búsqueda
Combo1.Clear
Combo1.AddItem "Documento"
Combo1.AddItem "Nombre"
Combo1.AddItem "Apellido"
Combo1.ListIndex = 0
End Sub

Private Sub Cmdguardar_Click()
' Abrimos el archivo en modo Random
Open "agenda.dat" For Random As #1 Len = Len(contacto)

' Calculamos el último registro
RegUltimo = LOF(1) / Len(contacto)

' Armamos la estructura con los datos de los textbox
With contacto
.Documento = Txtdoc.Text
.Nombre = Txtnombre.Text
.Apellido = Txtapellido.Text
.Direccion = Txtdireccion.Text
.Telefono = Txttelefono.Text
.Notas = Txtnotas.Text
End With

' Guardamos al final del archivo
Put #1, RegUltimo + 1, contacto

Close #1

MsgBox "Registro guardado exitosamente", vbOKOnly

' Limpiamos los textbox
Txtdoc.Text = ""
Txtnombre.Text = ""
Txtapellido.Text = ""
Txtdireccion.Text = ""
Txttelefono.Text = ""
Txtnotas.Text = ""
End Sub

Private Sub Cmdbuscar_Click()
Dim tmp As T_contacto
Dim PosReg As Long
Dim Encontrado As Boolean

If Txtbuscar.Text = "" Then
Txtnombre.SetFocus
Exit Sub
End If

Open "agenda.dat" For Random As #1 Len = Len(contacto)
RegUltimo = LOF(1) / Len(contacto)

Encontrado = False

For PosReg = 1 To RegUltimo
Get #1, PosReg, tmp

If Txtbuscar.Text = Trim(BuscarPor(tmp)) Then
Encontrado = True
RegActual = PosReg
VisualizarDatos tmp
Exit For
End If
Next

Close #1

If Not Encontrado Then
MsgBox "No se ha encontrado el registro: " & Txtbuscar.Text
Txtnombre.SetFocus
End If
End Sub

Private Function BuscarPor(t As T_contacto) As String
Select Case Combo1.ListIndex
Case 0: BuscarPor = t.Documento
Case 1: BuscarPor = t.Nombre
Case 2: BuscarPor = t.Apellido
End Select
End Function

Private Sub VisualizarDatos(t As T_contacto)
' Mostramos los datos en los textbox
Txtdoc.Text = Trim(t.Documento)
Txtnombre.Text = Trim(t.Nombre)
Txtapellido.Text = Trim(t.Apellido)
Txtdireccion.Text = Trim(t.Direccion)
Txttelefono.Text = Trim(t.Telefono)
Txtnotas.Text = Trim(t.Notas)

' Mostramos estado
Lblstatus.Caption = "Registro Actual: " & CStr(RegActual) & vbNewLine & _
"Total de registros: " & CStr(RegUltimo)
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar