Visual Basic - abrir un archivo secuencial en modo lectura y escritura

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

abrir un archivo secuencial en modo lectura y escritura

Publicado por Willy (1 intervención) el 19/03/2018 19:42:21
Hola a todos.
Estoy haciendo una aplicación que gestione los pacientes de una pequeña clínica de una ONG (lo estoy haciendo gratis). Hace tiempo aprendí vb6 y años después me he atevido con ello.

El caso e que en el mismo formulario debe aparecer la información de las sesiones anteriores del paciente (lectura) y poder modificar esa informacón añadiendo o quitando cosas (escritura). Todo eso en el mismo archivo.

con un botón 'go' envio el número del paciente al formulario y se revisa el fichero hasta que lo encuentra (al principio, al final o a la mitad, donde esté), lo que sigue a ese número en el archivo son los registros de la info del paciente, se leen, aparecen en los textbox, se modifican en el mismo txtbox y con un botón 'add' añado estas modificaciones al mismo fichero de antes (para que otro día en otra consulta pueda aparecer de nuevo)

No puedo usar ficheros random (ojalá) porque las variables recogen un txtbox de longitud no definida (dependerá de lo que tenga que escribir el médico sobre el paciente, quizá mucho quizá poco, no se sabe)
y no puedo usar binarios porque me pisan la información de los registros siguientes.
Tampoco puedo decirle a vb6 que se conecte a una base de datos porque el ordenador de allí no tene acces ni esas cosas (son una ONG pequeña).
Y no querría utilizar una copia del fichero como temporal porque ya serían dos secuencias leyendo info y no sé de cuánta memoria tira eso pero igual ya es bastante con una.

Entonces... ¿Hay alguna forma de abrir el fichero en lectura, y luego pedir que escriba una info en una posición determinada (buscada con el número del paciente)?
¿Alguna idea? porque a mi se me han acabado y no para de darme error...
no sé mucho pero tampoco me da pa más...

¡Gracias de antemano!

P.D.: no he puesto el código fuente porque tengo varios intentos y todos tienen el mismo problema, no puedo abrir el mismo fichero en lectura y en escritura para que me lea con un
input #numfile, datos.numeropaciente
hsta llegar con un bucle al paciente esecífico y luego me escriba ahí con un
write #numfile, datos
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
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

abrir un archivo secuencial en modo lectura y escritura

Publicado por gilman (359 intervenciones) el 20/03/2018 09:02:27
Si el problema para el uso de access es el económico puedes usar MySQL, Firebird o PostgreSQL.
En cuanto al tema de escribir en el archivo es complicado ayudarte sin saber la estructura que deben tener los datos almacenados.
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 Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

abrir un archivo secuencial en modo lectura y escritura

Publicado por Antoni Masana (558 intervenciones) el 20/03/2018 10:34:26
No sé si entiendo muy bien que es lo que tienes montado.

Creo entender que tienes un fichero a modo de índice donde se relaciona el paciente y su fichero historial y el problema está en el historial. Hasta aquí bien.

¿Cuando lees el historial lees todo el fichero que abres como secuencial de lectura? Si la respuesta es SI, a la hora de grabar cierras el
fichero y lo abres de escritura (Output) y lo creas de nuevo con todos los datos. Si la respuesta es NO la cosa se complica un poquito pero no mucho simplemente saber cómo estructuras el fichero, que partes lees y que partes modifica.

Te cuento cómo lo veo y si no te sirve necesitaría más información.

Supongamos que tu fichero historia-paciente se divide en varios bloques de información:

A – B – C – D – E – F

Después de modificar los datos resulta que los bloques B y E son diferentes y tienes que añadir el G. Cierra el historial y lo abres de solo lectura (lo llamare Orig), creas un nuevo fichero solo de escritura (lo llamare Dest).


Pasos a seguir:

Lees Bloque A de Orig y lo escribes en Dest
Escribes el Bloque B modificado en Dest
Lees Bloque C de Orig y lo escribes en Dest
Lees Bloque D de Orig y lo escribes en Dest
Escribes el Bloque E modificado en Dest
Escribes el Bloque G nuevo en Dest
Cierras los ficheros
Borras Orig
Renombras Dest cómo Orig

Fácil.

Saludos.
\\//_
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 Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

abrir un archivo secuencial en modo lectura y escritura

Publicado por Andres Leonardo (1798 intervenciones) el 20/03/2018 17:46:47
Escribeme a mi correo tengo un ejecutador de tareas que hace eso .. va colocando valores en una historia y creo que si lo adaptas siempre en el mismo campo te serviria de Historia clinica

si deseas para daetelo ya que lo estas haciendo para una ONG me encantaria poderte ayuda

VB 6.0 + Access conexion mediante ODBC

Enviame el correo a

[email protected]

SAludos
Andres
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