Ahora sí!!!! Libre de virus y funciona, se ve un poco raro dentro de Windows pero funcionar funciona.
He empezado a mirar el código, lo primero que he hecho ha sido comentar los comienzos y finales de las subrutinas. Todo programador debería comentar el código. De acuerdo con lo que dice el manual los comentarios se introducen con REM comentario
He estado revisando la opción 1 de menú y trabajaba bien, pero cuando le decias que querías continuar pulsando s minúscula en vez de dejarte seguir introduciendo datos te devolvía al menú principal. He cambiado la condición del while y ahora con s mayúscula o minúscula te deja seguir introduciendo. Además le he introducido que limpie la pantalla para seguir introduciendo, porque si no te aparecían los datos que habías metido antes.
He pasado a trabajar con un fichero de nombre NEWDATOS.TXT y he introducido estos datos:
Cédula 8732, nombre Juan Pedro, apellido Rojas, edad 32
Cédula 2231, nombre Manuel, apellido Romero, edad 21
Cédula 8974, nombre Luisa, apellido Guevara, edad 45
Cédula 292, nombre Juan, apellido Ruiz, edad 19
Cédula 544, nombre Alberto, apellido Fernandez, edad 34
En el archivo se ha guardado lo siguiente:
8732,"Juan Pedro","Rojas",32
2231,"Manuel","Romero",21
8974,"Luisa ","Guevara",45
292,"Juan","Ruiz",19
544,"Alberto","Fernandez",34
El código por el momento es este:
REM MENU DE CONTROL DEL PROGRAMA ***********************
MENU:
A=0
WHILE A<>5
gosub pantalla
locate 7,30: print "Menu Principal"
locate 9,30: print"1.- Incluir"
locate 11,30: print"2.- Consultar"
locate 13,30: print"3.- Modificar"
locate 15,30: print"4.- Eliminar"
locate 17,30: print"5.- Salir"
locate 22,30: print "Seleccione su Opcion:"
locate 22,51: INPUT A
if A = 1 then
gosub incluir
end if
if A = 2 then
gosub consultar
end if
if A = 3 then
gosub modificar
end if
if A = 4 then
gosub eliminar
end if
wend
end
REM FINAL DEL MENU DE CONTROL DEL PROGRAMA ***********************
REM SUBRUTINA DE CONTROL DE LO QUE SE MUESTRA EN PANTALLA ***********************
pantalla:
color 15,8
cls
locate 1,2: print"É"
locate 1,79: print"»"
locate 4,2: print"È"
locate 4,79: print"¼"
locate 6,2: print"É"
locate 6,79: print"»"
locate 19,2: print"È"
locate 19,79: print"¼"
locate 21,2: print"É"
locate 21,79: print"»"
locate 23,2: print"È"
locate 23,79: print"¼"
for I= 3 to 78
locate 1,I: print"Í"
next I
for I= 3 to 78
locate 4,I: print"Í"
next I
for I= 2 to 3
locate I,2: print"º"
next I
for I= 2 to 3
locate I,79: print"º"
next I
for I=3 to 78
locate 6,I: print"Í"
next I
for I=7 to 18
locate I,2: print"º"
next I
for I=7 to 18
locate I,79: print"º"
next I
for I=3 to 78
locate 19,I: print"Í"
next I
for I=3 to 78
locate 21,I: print"Í"
next I
for I= 22 to 22
locate I,2: print"º"
next I
for I=22 to 22
locate I,79: print"º"
next I
for I=3 to 78
locate 23,I: print"Í"
next I
locate 2,5: print"IUTIRLA"
locate 2,57: print"Caracas"
locate 2,65: print date$
locate 2,32: print "Hora: " time$
return
REM SUBRUTINA DE CONTROL DE LO QUE SE MUESTRA EN PANTALLA ***********************
REM SUBRUTINA PARA AÑADIR DATOS AL FICHERO (CEDULA, NOMBRE, APELLIDO, EDAD) ***********************
INCLUIR:
CLS
GOSUB PANTALLA
CLOSE#1
OPEN "NEWDATOS.TXT" FOR APPEND AS #1
B$ = "S"
WHILE B$ = "S" OR B$="s"
locate 9,30: print "Cedula:"
locate 10,30:input Cedula
locate 11,30:print "Nombre:"
locate 12,30:input Nombre$
locate 13,30:print "Apellido:"
locate 14,30:input Apellido$
locate 15,30:print "Edad"
locate 16,30:input Edad
Write #1,Cedula,Nombre$,Apellido$,Edad
locate 22,30: INPUT "¨Desea Continuar S/N?", B$
REM Limpiamos la pantalla
GOSUB PANTALLA
WEND
CLOSE #1
RETURN
REM FIN SUBRUTINA PARA AÑADIR DATOS AL FICHERO (CEDULA, NOMBRE, APELLIDO, EDAD) ***********************
REM SUBRUTINA PARA CONSULTAR DATOS EN FICHERO A PARTIR DE LA CEDULA (MOSTRAR CEDULA, NOMBRE, APELLIDO, EDAD) ***********************
CONSULTAR:
CEDU=0
GOSUB PANTALLA
LOCATE 8,30:INPUT "CEDULA:",CEDU
OPEN "NEWDATOS.TXT" FOR INPUT AS#1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
IF CEDULA=CEDU THEN
LOCATE 08,30:PRINT "CEDULA:",CEDU
LOCATE 10,30:PRINT "NOMBRE:",NOMBRE$
LOCATE 12,30:PRINT "APELLIDO:",APELLIDO$
LOCATE 14,30:PRINT "EDAD:",EDAD
END IF
WEND
LOCATE 22,30:INPUT "Desea Seguir Consultando:S/N:",B$
IF B$="S" OR B$="s" THEN
GOSUB CONSULTAR
END IF
RETURN
REM FIN SUBRUTINA PARA CONSULTAR DATOS EN FICHERO A PARTIR DE LA CEDULA (MOSTRAR CEDULA, NOMBRE, APELLIDO, EDAD) ***********************
REM SUBRUTINA PARA MODIFICAR DATOS EN FICHERO A PARTIR DE LA CEDULA (SI SE ENCUENTRA LA CEDULA PEDIR NOMBRE, APELLIDO, EDAD Y MODIFICAR DATOS) ***********************
MODIFICAR:
CLOSE#1
CLS
GOSUB PANTALLA
CEDU=0
OPEN "NEWDATOS.TXT" FOR INPUT AS#1
LOCATE 08,30:INPUT "Cedula:",CEDU
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
IF CEDULA=CEDU THEN
LOCATE 08,30:PRINT "Cedula:",CEDU
LOCATE 10,30:PRINT "Nombre:",NOMBRE$
LOCATE 12,30:PRINT "Apellido:",Apellido$
LOCATE 14,30:PRINT "Edad:",Edad
LOCATE 22,30:INPUT "Desea Modificar S/N:",B$
IF B$="S" OR B$="s" THEN
LOCATE 08,30:INPUT "Cedula:",CEDU
LOCATE 10,30:INPUT "Nombre:",Nombre$
LOCATE 12,30:INPUT "Apellido:",Apellido$
LOCATE 14,30:INPUT "Edad:",Edad
LOCATE 22,30:INPUT "Desea Seguir Modificando Datos S/N:",B$
IF B$="S" OR B$="s" THEN
WRITE#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
GOSUB MODIFICAR
ELSE
END IF
END IF
END IF
WEND
RETURN
REM FIN SUBRUTINA PARA MODIFICAR DATOS EN FICHERO A PARTIR DE LA CEDULA (SI SE ENCUENTRA LA CEDULA PEDIR NOMBRE, APELLIDO, EDAD Y MODIFICAR DATOS) ***********************
REM SUBRUTINA PARA ELIMINAR UN DATO A PARTIR DE LA CÉDULA ********************************
ELIMINAR:
CLOSE#1
CLS
GOSUB PANTALLA
CEDU=0
B$="S"
OPEN "NEWDATOS.TXT"FOR INPUT AS#1
LOCATE 08,30:INPUT "Cedula:",CEDU
WHILE (NOT EOF (1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
IF CEDULA=CEDU THEN
LOCATE 08,30:PRINT "CEDULA:",CEDU
LOCATE 10,30:PRINT "NOMBRE:",NOMBRE$
LOCATE 12,30:PRINT "APELLIDO:",APELLIDO$
LOCATE 14,30:PRINT "EDAD:",EDAD
LOCATE 22,30:INPUT "¨Desea Eliminar S/N?:",B$
END IF
WEND
REM FIN SUBRUTINA PARA ELIMINAR UN DATO A PARTIR DE LA CÉDULA ********************************