Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- type
- str=string[30];
- producto=record
- codigop:integer;
- nombre:str;
- precio:real;
- stocka:integer;
- stockm:integer;
- end;
- venta=record
- codigo:integer;
- cantv:integer;
- end;
- vector=array [1..30] of archivod;
- archivom= file of producto;
- archivod= file of venta;
- procedure crearmaestro (var A:archivom ; var t:text);
- var
- reg:producto;
- begin
- rewrite(A);
- reset(t);
- assign (A,'maestro');
- while not(eof (t)) do
- begin
- readln(t,reg.codigop,reg.nombre,reg.precio,reg.stocka,reg.stockm);
- write(A,reg);
- end;
- close(a);
- close(t);
- end;
- procedure listarmaestro (var a:archivom;var t:text);
- var
- reg:producto;
- begin
- reset(a);
- rewrite(t);
- assign(t,'reporte.txt');
- while not(eof(a)) do
- begin
- read(a,reg);
- writln(t,reg.codigop,'',reg.nombre,'',reg.precio,'',reg.stocka,'',reg.stockm);
- end;
- close(a);
- close(t);
- end;
- procedure creardetalle (var v:vector; var t:text; num:str);
- var
- num:str;
- reg:venta;
- begin
- rewrite(det);
- reset(t);
- assign(det,'detalle'+num);
- while not(eof(t)) do
- begin
- readln(t,reg.codigo,reg.cantv);
- write(v[num],reg);
- end;
- close(det);
- close(t);
- end;
- procedure listardetalle (var d:archivod);
- var
- reg:venta;
- begin
- reset(d);
- while not(eof(d)) do
- begin
- read(d,reg);
- writeln(reg.codigo);
- writeln(reg.cantv);
- end;
- close(d);
- end;
- procedure leer(var arc:archivod;var reg:venta);
- begin
- if (not eof(arc)) then
- begin
- read(arc,reg);
- end
- else
- reg.codigo:=valoralto;
- end;
- procedure minimo (var vec:vector;var min:venta);
- var
- i:integer;
- reg:venta;
- begin
- for i:=1 to 30 do
- begin
- leer(v[i],reg);
- if (reg.codigo<=min.codigo) then
- begin
- min.codigo:=reg.codigo;
- min.cantv:=reg.cantv;
- end;
- end;
- end;
- prcedure abrir(var vec:vector);
- var
- i:integer;
- begin
- for i:=1 to 30 do
- begin
- reset (v[i]);
- end;
- end;
- procedure cerrar (var vec:vector);
- var
- i:integer;
- begin
- for i:=1 to 30 do
- begin
- close(v[i]);
- end;
- end;
- procedure actualizar (var mae:archivom;var vec:vector);
- var
- min,reg:venta;
- pos:integer;
- regm:producto;
- begin
- reset(mae);
- abrir(vec);
- min.codigo:=9999999999999;
- minimo(vec,min);
- read(mae,regm);
- while(min.codigo<>valoralto) do
- begin
- total:=0;
- reg:=min;
- while (reg.codigo=min.codigo) do
- begin
- total:=total+min.cantv;
- minimo(vec,min);
- end;
- while(regm.codigop<>min.codigo) do
- read(mae,regm);
- regm.stocka:=regm.stocka-total;
- seek(mae,filepos(mae)-1);
- write(mae,regm);
- if (not eof(mae) then
- read(mae,regm);
- end;
- close(mae);
- cerrar(vec);
- end;
- procedure crearstock (var mae:arhivom, var t:text);
- var
- reg:producto;
- begin
- reset(mae);
- rewrite(t);
- assign(t,'stock_minimo.txt');
- while not(eof(mae)) do
- begin
- read(mae,reg);
- if (reg.stocka<reg.stockm) then
- begin
- writln(t,reg.codigop,'',reg.nombre,'',reg.precio,'',reg.stocka,'',reg.stockm);
- end;
- end;
- close(mae);
- close(t);
- end;
- var
- menu:integer;
- opc:0..6;
- numd:string;
- mae:archivom;
- tm,t1,t2,t3:text;
- ruta:string;
- vecd:vector;
- begin
- menu:=-1;
- while(menu <> 0)do
- begin
- writeln('Ingrese la opcion que desea realizar:');
- writeln;
- writeln('(0) Salir');
- writeln('(1) Crear maestro');
- writeln('(2) Listar reporte');
- writeln('(3) Crear detalle');
- writeln('(4) Listar detalle');
- writeln('(5) Actualizar');
- writeln('(6) Listar stock minimo');
- readln(opc);
- case opc of
- 0: HALT;
- 1: begin
- writeln('ingrese la ruta del archivo de texto');
- read(ruta);
- assing (tm,'ruta');
- crearmaestro(mae,tm);
- end;
- 2: begin
- listarmaestro(mae,t1);
- end;
- 3: begin
- writeln('ingrese el numero del archivo de texto a usar(1-30)');
- read(numd);
- creardetalle(vecd[numd],numd.txt)
- end;
- 4:begin
- writeln('ingrese la ruta del archivo de texto');
- read(ruta);
- assing (t2,'ruta');
- listardetalle(t2);
- end;
- 5:begin
- actualizar (mae,vecd);
- end;
- 6:begin
- crearstock (mae,t3);
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement