home *** CD-ROM | disk | FTP | other *** search
- program lager(input,output);
-
- uses w_tbp_55;
-
- const
- MAXZAHL = 256;
- DATEI = 'lager.dat';
- MASKE = 'lager.msk';
- HMASKE = 'lagerH.msk';
- NAMLEN = 10;
-
- type
- PRod=record
- nummer : byte; { -> Maximal 256 Produkte }
- name : array[0..NAMLEN] of char; { -> Zeichen + \0 }
- istmenge : word;
- bestellmenge : word;
- stueckpreis : DMark;
- letzte_bestellung : DAte;
- end;
-
- var
- produkt : array [0..255] of PRod;
- res,maskh,hilfe,s:integer;
-
-
- procedure sichern;
- var
- i :integer;
- handle :file;
- begin
- assign(handle,DATEI);
- {$I-}
- rewrite(handle,1);
- {$I+}
- blockwrite(handle,produkt,MAXZAHL*sizeof(PRod));
- close(handle);
- end;
-
- procedure laden;
- var
- i :integer;
- handle :file;
- leer :PRod;
- begin
-
- leer.nummer :=0;
- leer.name :=' NONAME';
- leer.name[0] :=char(10);
- leer.istmenge :=0;
- leer.bestellmenge :=0;
- leer.stueckpreis.mark :=0;
- leer.stueckpreis.pfen :=0;
- leer.letzte_bestellung.day :=1;
- leer.letzte_bestellung.mon :=1;
- leer.letzte_bestellung.year :=1980;
-
-
- assign(handle,DATEI);
- {$I-}
- reset(handle,1);
- {$I+}
-
- if ioresult<>0 then
- begin
- (*
- Datei existiert noch nicht, wird also erzeugt*)
- for i:=0 to MAXZAHL-1 do
- begin
- produkt[i]:=leer;
- produkt[i].nummer := byte(i);
- end;
- sichern;
- end
- else
- begin
- blockread(handle,produkt,sizeof(produkt));
- close(handle);
- end;
- end;
-
-
- procedure editieren(m:integer);
- var
- res,taste:integer;
- pos :byte;
- begin
-
- pos:=0;
- res:=w_switch_break_on_key(m,1);
- res:=w_in_break_on_key(1);
- res:=w_open(m);
- repeat
- res:=w_out_struct(m,0,5,produkt[pos]);
- res:=w_in_struct(m,1,5,produkt[pos].name);
- if res=-2 then
- begin
- taste:=w_switch_last_key(m);
- res:=w_out_struct(m,0,5,produkt[pos]);
- case taste of
- KEY_PGUP: pos:=pos-1;
- KEY_PGDN: pos:=pos+1;
- end;
- end
- else
- res:=-3;
-
- until(res=-3);
- res:=w_close;
- end;
-
- begin
- res:=w_init(DIREKT);
-
- maskh:=w_load(MASKE,NOVIRTUELL);
- if(maskh<0) then
- begin
- writeln('Fehler beim Laden der Maske ');
- halt(1);
- end;
- hilfe:=w_load(HMASKE,NOVIRTUELL);
- if(hilfe<0)then
- begin
- writeln('Fehler beim Laden der Maske ');
- halt(1);
- end;
- s:=w_struct_sizeof(maskh,0,5);
- if(s<>sizeof(PRod))then
- begin
- writeln('Strukturgröße unterschiedlich !');
- halt(1);
- end;
- res:=w_open(hilfe);
- laden;
- res:=w_kbd(REQUEST);
- editieren(maskh);
- sichern;
- res:=w_close;
- res:=w_deinit;
- end.
-
-
-
-