Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Jigsaw_MGO en 20 de Abril 2013, 23:18
-
Buenas me llamo Alejandro soy de Venezuela y recien empecé a estudiar Informática (Ciencias de la Computación) en la Uni. Voy por segundo semestre y en el primer semestre vimos programación en TurboBasic, lo que pasa es que no encuentro ni tutoriales, ni ejercicios ni programas con los que practicar entonces siento como que no he aprendido nada y me estresa que ni siquiera pueda terminar mi juego de Tres en Linea o Tic-Tac-Toe o La Vieja como quiera llamarle, alguien me podría instruir por favor? o decirme donde puedo conseguir algo que me sirva de referencia para BASIC. (No quiero pasar a Visual Basic aun), De Antemano Gracias.
-
Buenas me llamo Alejandro soy de Venezuela y recien empecé a estudiar Informática (Ciencias de la Computación) en la Uni. Voy por segundo semestre y en el primer semestre vimos programación en TurboBasic, lo que pasa es que no encuentro ni tutoriales, ni ejercicios ni programas con los que practicar entonces siento como que no he aprendido nada y me estresa que ni siquiera pueda terminar mi juego de Tres en Linea o Tic-Tac-Toe o La Vieja como quiera llamarle, alguien me podría instruir por favor? o decirme donde puedo conseguir algo que me sirva de referencia para BASIC. (No quiero pasar a Visual Basic aun), De Antemano Gracias.
-
Hola, aquí te dejo un link a un manual de Turbo Basic (en inglés):
http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/Borland_Turbo_BASIC_Owners_Handbook_1987.pdf
También disponible aquí: http://es.scribd.com/doc/56593631/Borland-Turbo-BASIC-Owners-Handbook-1987
O aquí: http://www.codeproject.com/script/News/View.aspx?nwid=20618
El asunto es que TurboBasic es un lenguaje de los años ochenta que prácticamente se ha dejado de usar, por eso es quizás un poco difícil conseguir información. Además, al escribir en el foro te recomiendo que pongas en el título aquello sobre lo que quieres consultar, por ejemplo si es sobre turbo basic pon ayuda sobre turbo basic, si pones simplemente por favor ayuda es más difícil que se lea tu consulta y que obtengas respuesta porque no queda claro sobre qué preguntas.
Si vas preparando código puedo intentar echarte una mano con las dudas que te surjan, suerte.
-
Hola, aquí te dejo un link a un manual de Turbo Basic (en inglés):
http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/Borland_Turbo_BASIC_Owners_Handbook_1987.pdf
También disponible aquí: http://es.scribd.com/doc/56593631/Borland-Turbo-BASIC-Owners-Handbook-1987
O aquí: http://www.codeproject.com/script/News/View.aspx?nwid=20618
El asunto es que TurboBasic es un lenguaje de los años ochenta que prácticamente se ha dejado de usar, por eso es quizás un poco difícil conseguir información. Además, al escribir en el foro te recomiendo que pongas en el título aquello sobre lo que quieres consultar, por ejemplo si es sobre turbo basic pon ayuda sobre turbo basic, si pones simplemente por favor ayuda es más difícil que se lea tu consulta y que obtengas respuesta porque no queda claro sobre qué preguntas.
Si vas preparando código puedo intentar echarte una mano con las dudas que te surjan, suerte.
Gracias me disculpo es que me desespero porque quiero aprender!! si quieres me agregas y hablamos :)
-
Para cualquier cosa escribe a través del foro aquí intentamos ayudarnos entre todos ;)
-
Para cualquier cosa escribe a través del foro aquí intentamos ayudarnos entre todos ;)
Buenas otra vez, aquí está un programa en el que he estado trabajando y espero me ayudes, es como un cuadro, que almacena, consulta, modifica , elimina y lista los datos eliminados. Pero no me funciona mucho te dejo el Codigo Aqui
MENU:
A=0
WHILE A<>6
CLS
GOSUB PANTALLA
LOCATE 2,3:PRINT "IUTIRLA LA YAGUARA CCS","Fecha:"DATE$,"Hora:"TIME$
LOCATE 7,38:PRINT "1-INCLUIR"
LOCATE 9,38:PRINT "2-CONSULTAR"
LOCATE 11,38:PRINT "3-MODIFICAR"
LOCATE 13,38:PRINT "4-ELIMINAR"
LOCATE 15,38:PRINT "5-LISTAR"
LOCATE 17,38:PRINT "6-SALIR"
LOCATE 22,30:INPUT "Por Favor Seleccione Su Opcion:",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
IF A = 5 THEN
REM GOSUB LISTAR
END IF
IF A = 6 THEN
END IF
WEND
END
PANTALLA:
COLOR 15,8
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
RETURN
INCLUIR:
CLS
GOSUB PANTALLA
CEDU=0
LOCATE 7,30:INPUT "CEDULA:",CEDU
LOCATE 9,30:INPUT "NOMBRE:",NOMBRE$
LOCATE 11,30:INPUT "APELLIDO:",APELLIDO$
LOCATE 13,30:INPUT "EDAD:",EDAD
CLOSE#1
OPEN "PRUEBA.TXT" FOR APPEND AS#1
WRITE #1,CEDU,NOMBRE$,APELLIDO$,EDAD
B$="S"
LOCATE 22,30:INPUT "¨Desea Seguir Introduciendo Datos? S/N:",B$
IF B$="S" OR B$="s" THEN
GOSUB INCLUIR
END IF
RETURN
CLOSE#1
CONSULTAR:
CEDU=0
CLS
GOSUB PANTALLA
CLOSE#1
LOCATE 8,30:INPUT "CEDULA:",CEDU
OPEN "PRUEBA.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
CLOSE#1
MODIFICAR:
CLS
GOSUB PANTALLA
CEDU=0
CLOSE#1
CLOSE#1
CLOSE#2
CLOSE#2
OPEN "PRUEBA.TXT" FOR INPUT AS#1
OPEN "PRUEBA1.TXT"FOR APPEND AS#2
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
REM WRITE #1,CEDULA,NOMBRE$,APELLIDO$,EDAD
END IF
END IF
END IF
WEND
CLOSE#1
CLOSE#2
RETURN
KILL "PRUEBA.TXT "
NAME "PRUEBA1.TXT" AS "PRUEBA.TXT"
ELIMINAR:
CLS
GOSUB PANTALLA
CEDU=0
B$="S"
CLOSE#1
CLOSE#2
OPEN "PRUEBA.TXT"FOR INPUT AS#1
OPEN "PRUEBA1.TXT"FOR APPEND AS#2
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$
IF B$="S" or B$="s" THEN
KILL CEDULA
LOCATE 22,30:PRINT CEDULA "HA SIDO ELIMINADA SATISFACTORIAMENTE"
END IF
END IF
WEND
-
No logro eliminar las cedulas, ni que me aparezcan en listado!! Ahi dejé el codigo, por fa ayuda!!
-
¿Qué versión de turbo basic o compilador estás usando? (a ver si me lo puedo bajar de internet)
¿Cuando introduces datos y luego abres el archivo ves los datos que se hayan guardado o no llegan a guardarse?
-
¿Qué versión de turbo basic o compilador estás usando? (a ver si me lo puedo bajar de internet)
¿Cuando introduces datos y luego abres el archivo ves los datos que se hayan guardado o no llegan a guardarse?
Es el TurboBasic 1.0, pero creo que puede servirte el QBASIC,
1- En el caso de Incluir, Crea un Archivo llamado "Prueba.txt" y graba la cedula,nombre,apellido y edad, luego manda un mensaje si quieres continuar, si es "SI" borra la pantalla y repite el proceso y sigue guardando los datos en el TXT si es "NO" sale al menu principal.
2- Ahora en Consultar, Si la cedula insertada es igual a la cedula grabada previamente, muestra los datos en pantalla, luego manda un mensaje si quieres seguir consultando datos, si es "SI" limpia la pantalla, "NO" sale al Menu Principal.
3- En Modificar (Aqui comienzan los problemas) Si la Cedula insertada existe, el programa muestra los datos en la pantalla perfectamente, te da una opcion para Modificar Datos, Si es "SI" te permite insertar datos en cada renglón, pero cuando terminas de insertar, no reemplaza los viejos datos por los nuevos.
4-En Eliminar (Aqui Tampoco Funciona) He aqui el comando "KILL PRUEBA.TXT" NAME "PRUEBA1.TXT AS PRUEBA.TXT" Pero en vez de SOLO BORRAR LA CEDULA, borra TODO EL ARCHIVO lo cual no me permite Listar los datos (Cedulas) Eliminadas, ya que no hay nada en los TXT. Les agradeceria la ayuda por favor. Gracias
-
Voy a mirarlo con calma, pero tienes que ver el manual y el significado de cada instrucción:
Según el manual:
KILL deletes a file (like the DOS DEL command).
KILL borra un fichero, por tanto el programa se ejecuta bien. Si tú das la orden de borrar un fichero, te borra el fichero. No puedes borrar los datos de una cédula usando KILL porque KILL lo que hace es borrar el fichero, hay que investigar cómo borrar los datos de la cédula que el usuario quiera eliminar.
-
Voy a mirarlo con calma, pero tienes que ver el manual y el significado de cada instrucción:
Según el manual:
KILL deletes a file (like the DOS DEL command).
KILL borra un fichero, por tanto el programa se ejecuta bien. Si tú das la orden de borrar un fichero, te borra el fichero. No puedes borrar los datos de una cédula usando KILL porque KILL lo que hace es borrar el fichero, hay que investigar cómo borrar los datos de la cédula que el usuario quiera eliminar.
Bueno gracias :) me avisas cualquier cosa.
-
¿Me puedes decir dónde puedo descargar el turbo basic? Me he descargado el power basic pero parece que tiene bastantes diferencias
-
Por cierto ¿hay que instalarlo y lo ejecutas desde windows o no requiere instalación y lo ejecutas en modo consola? Creo recordar que el gwbasic no requería instalación pero es que hace muchos años desde que lo usaba
-
Por cierto ¿hay que instalarlo y lo ejecutas desde windows o no requiere instalación y lo ejecutas en modo consola? Creo recordar que el gwbasic no requería instalación pero es que hace muchos años desde que lo usaba
Hay que instalarlo http://vetusware.com/download/Borland%20Turbo%20Basic%201.1%20FR/?id=3606 creo que esta pagina puede servir. Instalalo y me avisas.
-
Ya he conseguido hacerlo funcionar ;D Pero he tenido que hacerlo ordenando la ejecución desde la consola dos porque desde windows ni me deja. Esto la verdad es que está bastante obsoleto, pero para aprender puede servir
Además el programa está en francés y la verdad es que no entiendo demasiado lo que dice y cuando intento ejecutar el código me salta un error
Supongo que tú lo tendrás en español o en inglés.
Lo bueno que tiene es que ocupa muy poco. Intenta hacer esto:
Pásame el TURBOBASIC que estés usando tú (lo que hace falta son los ficheros DATABASE.BAS, TB.EXE, TBCONFIG.TB, TBHELP.TBH y TBINST.COM) y el fichero donde tengas el código del programa (será un archivo por que termina en .BAS, no sé qué nombre le tendrás puesto, puede ser CEDULA.BAS)
Puedes enviarmelo al correo javiinthesky [aqui el simbolo de arroba] yopmail.com
avisa cuando lo hayas pasado
-
Ya he conseguido hacerlo funcionar ;D Pero he tenido que hacerlo ordenando la ejecución desde la consola dos porque desde windows ni me deja. Esto la verdad es que está bastante obsoleto, pero para aprender puede servir
Además el programa está en francés y la verdad es que no entiendo demasiado lo que dice y cuando intento ejecutar el código me salta un error
Supongo que tú lo tendrás en español o en inglés.
Lo bueno que tiene es que ocupa muy poco. Intenta hacer esto:
Pásame el TURBOBASIC que estés usando tú (lo que hace falta son los ficheros DATABASE.BAS, TB.EXE, TBCONFIG.TB, TBHELP.TBH y TBINST.COM) y el fichero donde tengas el código del programa (será un archivo por que termina en .BAS, no sé qué nombre le tendrás puesto, puede ser CEDULA.BAS)
Puedes enviarmelo al correo javiinthesky [aqui el simbolo de arroba] yopmail.com
avisa cuando lo hayas pasado
-
Ya he conseguido hacerlo funcionar ;D Pero he tenido que hacerlo ordenando la ejecución desde la consola dos porque desde windows ni me deja. Esto la verdad es que está bastante obsoleto, pero para aprender puede servir
Además el programa está en francés y la verdad es que no entiendo demasiado lo que dice y cuando intento ejecutar el código me salta un error
Supongo que tú lo tendrás en español o en inglés.
Lo bueno que tiene es que ocupa muy poco. Intenta hacer esto:
Pásame el TURBOBASIC que estés usando tú (lo que hace falta son los ficheros DATABASE.BAS, TB.EXE, TBCONFIG.TB, TBHELP.TBH y TBINST.COM) y el fichero donde tengas el código del programa (será un archivo por que termina en .BAS, no sé qué nombre le tendrás puesto, puede ser CEDULA.BAS)
Puedes enviarmelo al correo javiinthesky [aqui el simbolo de arroba] yopmail.com
avisa cuando lo hayas pasado
-
OLVIDALO YA LO CONSEGUI, AQUI ESTÁ http://www.4shared.com/file/fXm1KAlO/Turbo_Basic.html
-
Parece que tiene un virus, o al menos eso dice el antivirus ¿por qué no me pasas el que has usado tú?
-
Ese es el que uso yo, no creo que tenga virus o.O, que antivirus usas?
-
El avg
-
El avg
Descargalo no tiene virus 100% Recomendado :), no se como pasar los .exes por correo :S no me deja
-
¿No tiene virus 100 %?
Amenaza detectada: Adware Toolbar.MT.dropper
Para pasar archivos exe por correo (o cualquier otro), comprímelos primero en un archivo zip y luego envíalos como archivo comprimido (zip).
No me envíes el archivo de la web de descarga porque si me lo envías me saltará el mismo problema, envíame los archivos que tengas en tu computador (los que te indicaba en un post anterior)
-
¿No tiene virus 100 %?
Amenaza detectada: Adware Toolbar.MT.dropper
Para pasar archivos exe por correo (o cualquier otro), comprímelos primero en un archivo zip y luego envíalos como archivo comprimido (zip).
No me envíes el archivo de la web de descarga porque si me lo envías me saltará el mismo problema, envíame los archivos que tengas en tu computador (los que te indicaba en un post anterior)
ya te lo envie al correo que me diste
-
Pues no lo veo... comprueba la dirección, tiene que ser todo en minúsculas y sin espacios, primero javiinthesky luego la arroba y luego yopmail.com todo junto sin espacios
-
Pues no lo veo... comprueba la dirección, tiene que ser todo en minúsculas y sin espacios, primero javiinthesky luego la arroba y luego yopmail.com todo junto sin espacios
listo ya te lo envie al yopmail.com
-
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 ********************************
-
He revisado la opción de consultar que estaba dando un error cuando se querían hacer varias consultas seguidas y lo he corregido. También he introducido que cuando no se encuentra la cédula aparezca un mensaje "No se encuentra la cédula 343" 343 es un ejemplo sería el número introducido.
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:
FOUND=0
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
FOUND=1
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
CLOSE#1
IF FOUND=0 THEN
LOCATE 08,30:PRINT "NO SE ENCUENTRA CEDULA ",CEDU
END IF
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 ********************************
-
He revisado la opción de consultar que estaba dando un error cuando se querían hacer varias consultas seguidas y lo he corregido. También he introducido que cuando no se encuentra la cédula aparezca un mensaje "No se encuentra la cédula 343" 343 es un ejemplo sería el número introducido.
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:
FOUND=0
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
FOUND=1
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
CLOSE#1
IF FOUND=0 THEN
LOCATE 08,30:PRINT "NO SE ENCUENTRA CEDULA ",CEDU
END IF
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 ********************************
Muchas gracias has sido d e gran ayuda, cuando lo desarrolles me avisas :)
-
He pasado a la opción modificar y me he encontrado con que hay un problema con el tipo de fichero y modos de acceso. Si miramos el manual dice esto:
The idea behind sequential files is simplicity itself: write to them as though they
were the screen, and read from them as though they were the keyboard.
Create a sequential file using the following steps:
1. OPEN the file in sequential OUTPUT mode. To create a file in Turbo Basic,
you must use the OPEN statement. Sequential files have two options to
prepare a file for output:
OUTPUT: If a file does not exist, a new file is created. If a file already exists,
its contents are erased and the file is then treated as a new file.
APPEND: If a file does not exist, a new file is created. If a file already exists,
Turbo Basic appends any data written to that file at its end.
2. Output data to afile. Use WRITE#, PRINT #, or PRINT# USING to write
data to a sequential file.
3. CLOSE the file. The CLOSE statement closes a file variable after the program
has completed all I/O operations.
To read a sequential file:
1. OPEN the file in sequential INPUT mode. Prepare the file to be read from.
2. Read data in/rom the file. Use Turbo Basic's INPUT #, INPUT$, or LINE
INPUT# statements.
3. CLOSE the file. The CLOSE statement closes a file variable after the program
has completed all I/O operations.
Aquí lo que viene a decir es que si usas el modo de fichero secuencial tienes tres formas de acceder:
append: añade datos al final del fichero
output: borra el contenido existente y escribe nuevos datos en el fichero
input: para leer datos del fichero
Entonces no tenemos forma de hacer lo que se quiere hacer directamente con este tipo de acceso, es decir, no puedes acceder a un registro específico y modificarlo.
Existe otro tipo de acceso, el random, con el cual sí parece que se podría acceder a un registro identificado por un número y escribir directamente en él mediante la instrucción PUT [ # ] (filenum [, record number]
PUT writes a record to a random file.
Pero claro si cambiamos a tipo random hay que reestructurar todo el código...
Otra opción sería almacenar todos los datos que nos interesan en un array y luego volver a escribir todos los datos con acceso secuencial y output, lo cual permitiría que el programa se mantenga de forma más similar a como está ahora.
¿Qué opinas de todo esto?
-
He pasado a la opción modificar y me he encontrado con que hay un problema con el tipo de fichero y modos de acceso. Si miramos el manual dice esto:
The idea behind sequential files is simplicity itself: write to them as though they
were the screen, and read from them as though they were the keyboard.
Create a sequential file using the following steps:
1. OPEN the file in sequential OUTPUT mode. To create a file in Turbo Basic,
you must use the OPEN statement. Sequential files have two options to
prepare a file for output:
OUTPUT: If a file does not exist, a new file is created. If a file already exists,
its contents are erased and the file is then treated as a new file.
APPEND: If a file does not exist, a new file is created. If a file already exists,
Turbo Basic appends any data written to that file at its end.
2. Output data to afile. Use WRITE#, PRINT #, or PRINT# USING to write
data to a sequential file.
3. CLOSE the file. The CLOSE statement closes a file variable after the program
has completed all I/O operations.
To read a sequential file:
1. OPEN the file in sequential INPUT mode. Prepare the file to be read from.
2. Read data in/rom the file. Use Turbo Basic's INPUT #, INPUT$, or LINE
INPUT# statements.
3. CLOSE the file. The CLOSE statement closes a file variable after the program
has completed all I/O operations.
Aquí lo que viene a decir es que si usas el modo de fichero secuencial tienes tres formas de acceder:
append: añade datos al final del fichero
output: borra el contenido existente y escribe nuevos datos en el fichero
input: para leer datos del fichero
Entonces no tenemos forma de hacer lo que se quiere hacer directamente con este tipo de acceso, es decir, no puedes acceder a un registro específico y modificarlo.
Existe otro tipo de acceso, el random, con el cual sí parece que se podría acceder a un registro identificado por un número y escribir directamente en él mediante la instrucción PUT [ # ] (filenum [, record number]
PUT writes a record to a random file.
Pero claro si cambiamos a tipo random hay que reestructurar todo el código...
Otra opción sería almacenar todos los datos que nos interesan en un array y luego volver a escribir todos los datos con acceso secuencial y output, lo cual permitiría que el programa se mantenga de forma más similar a como está ahora.
¿Qué opinas de todo esto?
Opino que eres un genio :D, quisiera tener compañeros programadores así de inteligentes, si podriamos mantener la estructura como está, recuerda que la idea es que se pueda modificar, al insertar la cedula, para que grabe nuevos datos.
-
He estado revisando la opción de modificar manteniendo la estructura del programa. He hecho alguna prueba y parece que funciona, de todas formas aquí te dejo el código. Haz pruebas y dime si te salen errores o si te funciona bien, para ver si hay que hacer correcciones o si seguimos hacia la siguiente opción.
La solución usada es la que te comentaba de meter todos los datos en un array temporalmente para luego volcarlos nuevamente al fichero con la modificación introducida.
REM MENU DE CONTROL DEL PROGRAMA ***********************
REM ARRAY PARA ALMACENAR EL CONTENIDO DE UN FICHERO CON LIMITE 100 DATOS
DIM Cedulax(100), Nombrex$(100), Apellidox$(100), Edadx(100)
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:
FOUND=0
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
FOUND=1
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
CLOSE#1
IF FOUND=0 THEN
LOCATE 08,30:PRINT "NO SE ENCUENTRA CEDULA ",CEDU
END IF
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
CONTADOR = 1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = 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
CLS
GOSUB PANTALLA
LOCATE 08,30:PRINT "Cedula:",CEDU
LOCATE 10,30:INPUT "Nombre:",Nombre$
LOCATE 12,30:INPUT "Apellido:",Apellido$
LOCATE 14,30:INPUT "Edad:",Edad
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = EDAD
ELSE
CLOSE#1
RETURN
END IF
END IF
CONTADOR = CONTADOR + 1
WEND
CLOSE#1
IF B$="S" OR B$="s" THEN
OPEN "NEWDATOS.TXT" FOR OUTPUT AS#1
FOR I = 1 TO CONTADOR-1
WRITE#1,Cedulax(I),Nombrex$(I),Apellidox$(I),Edadx(I)
NEXT
END IF
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 ********************************
-
He estado revisando la opción de modificar manteniendo la estructura del programa. He hecho alguna prueba y parece que funciona, de todas formas aquí te dejo el código. Haz pruebas y dime si te salen errores o si te funciona bien, para ver si hay que hacer correcciones o si seguimos hacia la siguiente opción.
La solución usada es la que te comentaba de meter todos los datos en un array temporalmente para luego volcarlos nuevamente al fichero con la modificación introducida.
REM MENU DE CONTROL DEL PROGRAMA ***********************
REM ARRAY PARA ALMACENAR EL CONTENIDO DE UN FICHERO CON LIMITE 100 DATOS
DIM Cedulax(100), Nombrex$(100), Apellidox$(100), Edadx(100)
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:
FOUND=0
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
FOUND=1
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
CLOSE#1
IF FOUND=0 THEN
LOCATE 08,30:PRINT "NO SE ENCUENTRA CEDULA ",CEDU
END IF
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
CONTADOR = 1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = 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
CLS
GOSUB PANTALLA
LOCATE 08,30:PRINT "Cedula:",CEDU
LOCATE 10,30:INPUT "Nombre:",Nombre$
LOCATE 12,30:INPUT "Apellido:",Apellido$
LOCATE 14,30:INPUT "Edad:",Edad
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = EDAD
ELSE
CLOSE#1
RETURN
END IF
END IF
CONTADOR = CONTADOR + 1
WEND
CLOSE#1
IF B$="S" OR B$="s" THEN
OPEN "NEWDATOS.TXT" FOR OUTPUT AS#1
FOR I = 1 TO CONTADOR-1
WRITE#1,Cedulax(I),Nombrex$(I),Apellidox$(I),Edadx(I)
NEXT
END IF
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 ********************************
Si funciona perfecto, ahora faltaría la parte en la que eliminamos varios datos, y que cuando salgamos, te muestre una lista de datos eliminados, :) gracias has sido de mucha ayuda, me avisas si investigas como eliminar cedula por cedula :P porfa.
-
Pues esto que falta creo que se puede hacer de la misma manera que hemos hecho para eliminar datos, es decir, usando arrays. Con arrays puedes decidir con qué datos te quedas y si quieres también una lista de datos eliminados también puedes tenerla ¿Has probado de esta manera?
-
Pues esto que falta creo que se puede hacer de la misma manera que hemos hecho para eliminar datos, es decir, usando arrays. Con arrays puedes decidir con qué datos te quedas y si quieres también una lista de datos eliminados también puedes tenerla ¿Has probado de esta manera?
No pues no tengo idea de como hacerlo :S
-
Pues esto que falta creo que se puede hacer de la misma manera que hemos hecho para eliminar datos, es decir, usando arrays. Con arrays puedes decidir con qué datos te quedas y si quieres también una lista de datos eliminados también puedes tenerla ¿Has probado de esta manera?
Lo intentaré hacer con arrays y te digo, ve intentando tu y comparamos, gracias has sido de gran ayuda.
-
Pues esto que falta creo que se puede hacer de la misma manera que hemos hecho para eliminar datos, es decir, usando arrays. Con arrays puedes decidir con qué datos te quedas y si quieres también una lista de datos eliminados también puedes tenerla ¿Has probado de esta manera?
Lo intentaré hacer con arrays y te digo, ve intentando tu y comparamos, gracias has sido de gran ayuda.
Como vas amigo? has podido realizarlo? a mi todavia no me da :S me da error
-
Creo que aquí está funcionando ya la opción de eliminar, te dejo el código. Revísalo y ya me comentas si te funciona.
REM MENU DE CONTROL DEL PROGRAMA ***********************
REM ARRAY PARA ALMACENAR EL CONTENIDO DE UN FICHERO CON LIMITE 100 DATOS
DIM Cedulax(100), Nombrex$(100), Apellidox$(100), Edadx(100)
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:
FOUND=0
CEDU=0
CLOSE#1
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
FOUND=1
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
CLOSE#1
IF FOUND=0 THEN
LOCATE 08,30:PRINT "NO SE ENCUENTRA CEDULA ",CEDU
END IF
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
CONTADOR = 1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = 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
CLS
GOSUB PANTALLA
LOCATE 08,30:PRINT "Cedula:",CEDU
LOCATE 10,30:INPUT "Nombre:",Nombre$
LOCATE 12,30:INPUT "Apellido:",Apellido$
LOCATE 14,30:INPUT "Edad:",Edad
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = EDAD
ELSE
CLOSE#1
RETURN
END IF
END IF
CONTADOR = CONTADOR + 1
WEND
CLOSE#1
IF B$="S" OR B$="s" THEN
OPEN "NEWDATOS.TXT" FOR OUTPUT AS#1
FOR I = 1 TO CONTADOR-1
WRITE#1,Cedulax(I),Nombrex$(I),Apellidox$(I),Edadx(I)
NEXT
END IF
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
OPEN "NEWDATOS.TXT" FOR INPUT AS#1
LOCATE 08,30:INPUT "Cedula:",CEDU
CONTADOR = 1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = 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$
IF B$="S" OR B$="s" THEN
CLS
GOSUB PANTALLA
LOCATE 22,30:PRINT "Los datos han sido eliminados"
REM SI HEMOS ELIMINADO EL CONTADOR NO DEBE INCREMENTARSE
CONTADOR = CONTADOR - 1
ELSE
CLOSE#1
RETURN
END IF
END IF
CONTADOR = CONTADOR + 1
WEND
CLOSE#1
IF B$="S" OR B$="s" THEN
OPEN "NEWDATOS.TXT" FOR OUTPUT AS#1
FOR I = 1 TO CONTADOR-1
WRITE#1,Cedulax(I),Nombrex$(I),Apellidox$(I),Edadx(I)
NEXT
END IF
RETURN
REM FIN SUBRUTINA PARA ELIMINAR UN DATO A PARTIR DE LA CÉDULA ********************************
-
Nuevo codigo que acabo de implementar, en el archivo abajo, ahora lo que me falta es que liste todos los datos eliminados, a mi me funciona, prueba y me avisas de que manera se puede hacer diferente, gracias hermano, hablamos :)
-
Ya lo modifiqué revisalo cuando puedas, saludos
el archivo esta en el comment de arriba
Creo que aquí está funcionando ya la opción de eliminar, te dejo el código. Revísalo y ya me comentas si te funciona.
REM MENU DE CONTROL DEL PROGRAMA ***********************
REM ARRAY PARA ALMACENAR EL CONTENIDO DE UN FICHERO CON LIMITE 100 DATOS
DIM Cedulax(100), Nombrex$(100), Apellidox$(100), Edadx(100)
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:
FOUND=0
CEDU=0
CLOSE#1
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
FOUND=1
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
CLOSE#1
IF FOUND=0 THEN
LOCATE 08,30:PRINT "NO SE ENCUENTRA CEDULA ",CEDU
END IF
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
CONTADOR = 1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = 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
CLS
GOSUB PANTALLA
LOCATE 08,30:PRINT "Cedula:",CEDU
LOCATE 10,30:INPUT "Nombre:",Nombre$
LOCATE 12,30:INPUT "Apellido:",Apellido$
LOCATE 14,30:INPUT "Edad:",Edad
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = EDAD
ELSE
CLOSE#1
RETURN
END IF
END IF
CONTADOR = CONTADOR + 1
WEND
CLOSE#1
IF B$="S" OR B$="s" THEN
OPEN "NEWDATOS.TXT" FOR OUTPUT AS#1
FOR I = 1 TO CONTADOR-1
WRITE#1,Cedulax(I),Nombrex$(I),Apellidox$(I),Edadx(I)
NEXT
END IF
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
OPEN "NEWDATOS.TXT" FOR INPUT AS#1
LOCATE 08,30:INPUT "Cedula:",CEDU
CONTADOR = 1
WHILE (NOT EOF(1))
INPUT#1,CEDULA,NOMBRE$,APELLIDO$,EDAD
Cedulax(CONTADOR) = CEDULA
Nombrex$(CONTADOR) = NOMBRE$
Apellidox$(CONTADOR) = APELLIDO$
Edadx(CONTADOR) = 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$
IF B$="S" OR B$="s" THEN
CLS
GOSUB PANTALLA
LOCATE 22,30:PRINT "Los datos han sido eliminados"
REM SI HEMOS ELIMINADO EL CONTADOR NO DEBE INCREMENTARSE
CONTADOR = CONTADOR - 1
ELSE
CLOSE#1
RETURN
END IF
END IF
CONTADOR = CONTADOR + 1
WEND
CLOSE#1
IF B$="S" OR B$="s" THEN
OPEN "NEWDATOS.TXT" FOR OUTPUT AS#1
FOR I = 1 TO CONTADOR-1
WRITE#1,Cedulax(I),Nombrex$(I),Apellidox$(I),Edadx(I)
NEXT
END IF
RETURN
REM FIN SUBRUTINA PARA ELIMINAR UN DATO A PARTIR DE LA CÉDULA ********************************
-
Hola, aquí te dejo un link a un manual de Turbo Basic (en inglés):
http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/Borland_Turbo_BASIC_Owners_Handbook_1987.pdf
También disponible aquí: http://es.scribd.com/doc/56593631/Borland-Turbo-BASIC-Owners-Handbook-1987
O aquí: http://www.codeproject.com/script/News/View.aspx?nwid=20618
El asunto es que TurboBasic es un lenguaje de los años ochenta que prácticamente se ha dejado de usar, por eso es quizás un poco difícil conseguir información. Además, al escribir en el foro te recomiendo que pongas en el título aquello sobre lo que quieres consultar, por ejemplo si es sobre turbo basic pon ayuda sobre turbo basic, si pones simplemente por favor ayuda es más difícil que se lea tu consulta y que obtengas respuesta porque no queda claro sobre qué preguntas.
Si vas preparando código puedo intentar echarte una mano con las dudas que te surjan, suerte.
Querido moderador, como puedo eliminar este post para crear otro? es que ya no estoy viendo QBASIC, estoy viendo VISUAL BASIC 6.0, por favor ayuda, este tema tiene muchos post...
-
Hola, para crear un nuevo tema de conversación pulsa sobre el nombre del foro donde quieras escribir (por ejemplo, C, C++, Java, Visual Basic...) y pulsa sobre el botón "Nuevo tema". A continuación escribe el asunto del post, por ejemplo "Dudas con el uso de Command Buttons en Visual Basic" y seguidamente el contenido del mensaje. Para insertar código usa el botón # que aparece en el editor. El código debe quedar entre las etiquetas [ code ] [ / code] de forma que cuando lo publiques quedará así:
Ejemplo de código
Línea 1
Línea 2
etc
Saludos.
-
Hola, para crear un nuevo tema de conversación pulsa sobre el nombre del foro donde quieras escribir (por ejemplo, C, C++, Java, Visual Basic...) y pulsa sobre el botón "Nuevo tema". A continuación escribe el asunto del post, por ejemplo "Dudas con el uso de Command Buttons en Visual Basic" y seguidamente el contenido del mensaje. Para insertar código usa el botón # que aparece en el editor. El código debe quedar entre las etiquetas [ code ] [ / code] de forma que cuando lo publiques quedará así:
Ejemplo de código
Línea 1
Línea 2
etc
Saludos.
Ok gracias :)
-
Buenas, Puedes cerrar éste tema? ya no necesito mas nada de TurboBASIC, ni de QBASIC, ahora voy a crear un tema de Visual Basic 6.0, Gracias por la ayuda prestada.