Pascal/Turbo Pascal - Estoy haciendo un proyecto pero aun no veo ficheros y no se como hacerlo

   
Vista:

Estoy haciendo un proyecto pero aun no veo ficheros y no se como hacerlo

Publicado por Angel (15 intervenciones) el 21/12/2011 01:39:29
Oki amigos estoy haciendo un proyecto en pascal este:
Realice un programa que permita crear un archivo a través del cual se llevará el registro de empleados de una compañia. Cada registro estará compuesto por los sig campos: nombre, apellido, cedula y departamento al que pertenece (a,b,c,d,e,f,g,h) el archivo será manejado a traves del sig menú: 1.- agregar registros, 2.- editar registros, 3.- eliminar registros y 4.- finalizar. La consulta será general y en ella se deben calcular y mostrar cuantos empleados hay en cada departamento.

me podrian decir como hago para que el programa agregue edite y elimine empleados? se lo agradezco :) soy nuevo en esto :) si me pueden dejar el pseudocodigo :D...!
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

Estoy haciendo un proyecto pero aun no veo ficheros y no se como hacerlo

Publicado por ramon (2072 intervenciones) el 22/12/2011 18:06:27
{Espero esto te sirva}

program ediregi;
uses
crt;
type
empleados = record
nombre : string[40];
apellido : string[40];
cedula : string[30];
departa : char;
end;

const
archivo : string = 'empleados.bst';

var
borra, dato : array[1..200] of empleados; {se Acmiten 200 empleados}
f : file of empleados;
arch, cont : integer;
noar : boolean;

procedure guaedareg;
var
g : integer;
begin
assign(f,archivo);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
for g := 1 to cont - 1 do
begin
seek(f,g - 1);
write(f,dato[g]);
end;
close(f);
end
else
begin
for g := 1 to cont - 1 do
begin
seek(f,(filesize(f) - 1) + g);
write(f, dato[g]);
end;
close(f);
end;
end;


procedure cargareg;
var
g : integer;
begin
assign(f,archivo);
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
noar := true;
exit;
end
else
begin
noar := false;
arch := filesize(f) - 1;
for g := 0 to filesize(f) - 1 do
begin
seek(f, g);
read(f, dato[g + 1]);
end;
close(f);
end;
end;

procedure entradadatos;
begin
clrscr;
gotoxy(4,4);write('Nombre : ');
gotoxy(4,5);write('Apellido : ');
gotoxy(4,6);write('Cedula : ');
gotoxy(4,7);write('Departamento : [a,b,c,d,e,f,g,h]');
gotoxy(20,4);readln(dato[cont].nombre);
gotoxy(20,5);readln(dato[cont].apellido);
gotoxy(20,6);readln(dato[cont].cedula);
gotoxy(20,7);readln(dato[cont].departa);
cont := cont + 1;
if cont > 200 then
cont := 200;
end;

procedure verregistros;
var
i : integer;
tp : char;
begin
if cont > 1 then
begin
clrscr;
gotoxy(4,2);write('*** Visualizacion de Empleados ***');
gotoxy(4,4);write('Nombre : ');
gotoxy(4,5);write('Apellido : ');
gotoxy(4,6);write('Cedula : ');
gotoxy(4,7);write('Departamento : ');
gotoxy(4,10);write('* Use las [',chr(24),chr(25),'] Salir [Enter] *');
i := 1;
repeat
gotoxy(20,4);write(dato[i].nombre);
gotoxy(20,5);write(dato[i].apellido);
gotoxy(20,6);write(dato[i].cedula);
gotoxy(20,7);write(dato[i].departa);
tp := readkey;
if tp in[#80,#72] then
begin
gotoxy(20,4);clreol;
gotoxy(20,5);clreol;
gotoxy(20,6);clreol;
gotoxy(20,7);clreol;
end;
if tp = #80 then
begin
i := i + 1;
if i > cont - 1 then
i := cont - 1;
end;
if tp = #72 then
begin
i := i - 1;
if i < 1 then
i := 1;
end;
until tp = #13;
end
else
begin
gotoxy(4,3);write('NO CARGADOS LOS DATOS PULSE [ENTER]');
readln;
end;
end;

procedure borrardatos;
var
cedu : string[30];
t, x : integer;
begin
clrscr;
gotoxy(3,2);write('*** Borrado de Registro Empleado ***');
gotoxy(3,5);write('Entre Cedula a Anular : ');
gotoxy(27,5);readln(cedu);
x := 1;
for t := 1 to cont - 1 do
begin
if dato[t].cedula <> cedu then
begin
borra[x] := dato[t];
x := x + 1;
end;
end;
for t := 1 to x - 1 do
dato[t] := borra[t];
end;


procedure menu;
var
tec : char;
salir : boolean;
begin
salir := false;
repeat
clrscr;
gotoxy(10,2);write('***** MENU GENERAL ******');
gotoxy(7,4);write('1 = Agregar registros');
gotoxy(7,5);write('2 = Ver registros');
gotoxy(7,6);write('3 = Eliminar registros');
gotoxy(7,7);write('4 = Finalizar');
gotoxy(7,9);write('*** Elija Opcion [1,2,3,4] ***');
tec := readkey;
if tec in[#49..#52] then
begin
clrscr;
case tec of
#49 : entradadatos;
#50 : verregistros;
#51 : borrardatos;
#52 : salir := true;
end;
end;
until salir = true;
end;


begin
clrscr;
cargareg;
if noar = true then
cont := 1
else
cont := arch;
menu;
guaedareg;
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

Estoy haciendo un proyecto pero aun no veo ficheros y no se como hacerlo

Publicado por Angel (15 intervenciones) el 23/12/2011 05:12:41
Gracias amigo hoy termino el proyecto :)
MUCHISIMAS GRACIAS...!
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

Estoy haciendo un proyecto pero aun no veo ficheros y no se como hacerlo

Publicado por Angel (15 intervenciones) el 23/12/2011 05:23:15
Disculpa hermano pero ejecuto el programa guardo un nuevo empleado salgovuelvo a ejecutar y el empleado no sale registrado :( que hago para corregir ese detalle?? Disculpa es que aun no veo el tema de ficheros..! :(
Y gracias por el programa :)
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

Estoy haciendo un proyecto pero aun no veo ficheros y no se como hacerlo

Publicado por Angel (15 intervenciones) el 24/12/2011 02:46:25
LISTO AMIGO ERA UN ERROR MIO HEHE GRACIAS POR EL PROGRAMA ME SIRVIÓ DE MUCHO...!
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