Pascal/Turbo Pascal - EN UN ARCHIVO SECUENCIAL

 
Vista:
sin imagen de perfil

EN UN ARCHIVO SECUENCIAL

Publicado por ELIAS (45 intervenciones) el 23/11/2012 18:41:10
En un Menu, dentro de un archivo secuencial, ¿se pueden activar o desactivar las opciones si el archivo esta vacío? ¿como se puede hacer?


ejemplo de Menu:


WriteLn;
GotoXY(20,5); WriteLn('1 - Incluir');
GotoXY(20,7); WriteLn('2 - Consultar');
GotoXY(20,9); WriteLn('3 - Modificar');
GotoXY(20,11); WriteLn('4 - Eliminar');
GotoXY(20,13); WriteLn('5 - Listar');
GotoXY(20,15); WriteLn('6 - Reporte');
GotoXY(20,17); WriteLn('0 - Salir');
WriteLn;
Repeat
Opcion:=ReadKey;

Until (Opcion >= '0') And (Opcion <= '6');
Case Opcion of
'1': Incluir(Arch);
'2': Consult(Arch);
'3': Modif(Arch);
'4': Eliminar(Arch);
'5': Listar(Arch);
'6': Reporte(Arch);
End;
Until Opcion = '0';

End.
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

EN UN ARCHIVO SECUENCIAL

Publicado por ramon (2158 intervenciones) el 23/11/2012 21:46:32
A ver no entiendo bien tu pregunta pero es pondré lo que creo que pides si no es así dímelo.

Para leer un archivo y tomar la decisión oportuna se debe de realizar esto:

assign(archi,nombre); {abrimos el archivo y comprobamos si existe sino existe paso 1 si existe paso 2}
{$I-} reset(archi); {$I+}
if ioresult <> 0 then
begin
(1)
end
else
begin

(2)
if filesize(archi) = 0 then
{archivo vació salimos y cerramos close(archi)}
else
begin
{tiene datos realizamos lo que sea y cerramos close(archi)}
end;
end;
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

EN UN ARCHIVO SECUENCIAL

Publicado por ELIAS (45 intervenciones) el 23/11/2012 22:22:09
No amigo, no me expliqué... básicamente es indicarle al programa que si filesize = 0 no active las opciones del 1 al 6, sino solo la 1 que es incluir...

Case Opcion of
'1': Incluir(Arch);
'2': Consult(Arch);
'3': Modif(Arch);
'4': Eliminar(Arch);
'5': Listar(Arch);
'6': Reporte(Arch);
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

EN UN ARCHIVO SECUENCIAL

Publicado por ramon (2158 intervenciones) el 24/11/2012 12:14:32
E saz to eso es lo que hace ese párrafo verificar si tiene datos o esta vació donde tu lo pongas es cosa tulla pero esa es la forma ejemplo:

procedure incluir(archi : loquesea);
begin
assign(archi,nombre cual sea);
{$I-} reset(archi) {$I+}
if ioresult <> 0 then el archivo no existe
begin
exit;
end
else
begin
if filesize = 0 then
exit salimos sin acer nada
else
begin
se ejecuta el proceso que se desea
end;
end;
end;

Esto es lo que te presente ponlo donde lo necesites.
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