Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 9.1.2005
Репутация: нет Всего: нет
|
Здравствуйте! Весьма вам благодарен за столи щедрую помощ, но видимо мы не совсем правильно друг другу поняли. Я работаю не со строками, а с записями(структурами). Пожалуйста, помогите ещё разок. Если вас на затруднит, посмотрите, что не так с этой прогой!!! Не работает только процедура Vivod_SKLAD. Пожалуйста, сделайте с ней что нибуть, или перепишите заново под мою прогу. А то я уже запарился с ней мучатся. (исходники отдаю в вечное пользование. Они рабочие, за исключением Vivod_SKLAD). | Код | program Schetchik; uses Graph,crt,DOS,Printer; type kol=record name:string[40]; amount:real; coast:real; end; Fil=File of kol; label 1,2; var F,Fs,F_2,F200,F300,F400,F500:Fil; a,b,First,Last:kol;
PROCEDURE Vvod(var F:Fil); var graphic,graphics:integer; c:char; begin CloseGraph; ClrScr; Rewrite(F); c:=#13; while (c=#13) do begin With a do begin writeln('Введите наименование:'); readln(name); writeln('Введите количество:'); readln(amount); writeln('Введите цену:'); readln(coast); write(F,a); end; writeln('Press ENTER to continue, ESC-exit'); c:=readkey; end; Close(F); end;
PROCEDURE Vivod(var F:Fil); label 1,2; var graphic,graphics,i,x,y:integer; n:real; s1:string[5]; c:char; begin CloseGraph; Clrscr; y:=17;x:=100; graphic:=detect; InitGraph(graphic,graphics,'C:\BP\BGI'); SetColor(7); Line(0,0,639,0); Line(0,0,0,479); Line(0,479,639,479); Line(639,0,639,479); Line(0,18,639,18); SetColor(15); MoveTo(78,9); SetTextStyle(0,0,1); Outtext('Название'); MoveTo(245,9); Outtext('Количество'); MoveTo(335,9); Outtext('Стоймость'); SetColor(7); for i:=1 to 33 do begin y:=y+14; Line(1,y,639,y); end; Line(240,0,240,479); Line(330,0,330,479); SetColor(14); y:=7;x:=0;i:=0; SetTextStyle(0,0,0); Reset(F); While not Eof(F) do begin y:=y+15; read(F,a); With a do begin i:=i+1; MoveTo(0,y-i); Outtext(name); MoveTo(240,y-i); n:=amount; Str(n:2:0,s1); SetTextStyle(0,0,0); Outtext(s1); n:=coast; Str(n:2:0,s1); MoveTo(330,y-i); Outtext(s1); end; end; Close(F); 2:c:=readkey; if c=#27 then Exit else goto 2; end;
PROCEDURE Vvod_SKLAD(var Fs:Fil); var c:char; begin CloseGraph; clrscr; writeln('? бЄ« ¤Ґ:'); Reset(Fs); Seek(Fs,33); c:=#13; while (c=#13) do begin With b do begin writeln('Введите наименование:'); readln(name); writeln('Введите количество:'); readln(amount); writeln('Введите стоймость:'); readln(coast); write(Fs,b); end; writeln('Press ENTER to continue, ESC-exit'); c:=readkey; end; Close(Fs); end;
PROCEDURE Vivod_SKLAD(var Fs:Fil); label 1,2,3; var graphic,graphics,i,x,y,First,Last,n1,index_of_end:integer; n:real; s1:string[5]; c:char; begin CloseGraph; Clrscr; {Reset(Fs); Seek(Fs,22); Truncate(Fs); Close(Fs);} y:=17;x:=100; graphic:=detect; InitGraph(graphic,graphics,'C:\BP\BGI'); SetColor(7); Line(0,0,639,0); Line(0,0,0,479); Line(0,479,639,479); Line(639,0,639,479); Line(0,18,639,18); SetColor(15); MoveTo(78,9); SetTextStyle(0,0,1); Outtext('Название'); MoveTo(245,9); Outtext('Количество'); MoveTo(335,9); Outtext('Стоймость'); SetColor(7); for i:=1 to 33 do begin y:=y+14; Line(1,y,639,y); end; Line(240,0,240,479); Line(330,0,330,479); SetColor(14); y:=7;x:=0;i:=0; SetTextStyle(0,0,0); Reset(Fs); index_of_end:=Filesize(Fs); if index_of_end<33 then last:=index_of_end else last:=33; {n:=index_of_end; Str(n:2:0,s1); SetTextStyle(0,0,0); Outtext(s1);} First:=0; Repeat Seek(Fs,First); for i:=0 to Last-First-1 do begin y:=y+14; Read(Fs,a); With a do begin {i:=i+1;} MoveTo(0,y); Outtext(name); MoveTo(240,y); n:=amount; Str(n:2:0,s1); SetTextStyle(0,0,0); Outtext(s1); n:=coast; Str(n:2:0,s1); MoveTo(330,y); Outtext(s1); end; end; c:=readkey; if (c=#72)and(first>0) then begin first:=first-8; last:=last-8; end; if (c=#80)and(last<Filesize(Fs)-1) then begin first:=first+8; last:=last+8; end; until c=#27; Close(Fs); {2:c:=readkey; if c=#27 then Exit else goto 2;} end;
PROCEDURE Change(var F:Fil); var n:real; nam:string[30]; x:integer; am:real; begin CloseGraph; ClrScr; writeln('Введите наименование:'); readln(nam); writeln('Введите новое количество'); readln(am); Reset(F); repeat read(F,a); until (a.name=nam)or(eof(F)); if nam=a.name then begin x:=FilePos(F); seek(F,Filepos(f)-1); a.amount:=am; write(F,a); end; Close(F); end;
PROCEDURE Schet_1(var F,Fs:Fil); var x:integer; begin Reset(F); Reset(Fs); while not eof(F) do begin read(F,a); repeat read(Fs,b); until (b.name=a.name)or(eof(Fs)); if b.name=a.name then begin x:=FilePos(Fs); b.amount:=b.amount-a.amount; seek(Fs,x-1); write(Fs,b); end; end; Close(F); Close(Fs); end;
PROCEDURE Schet(var F,Fs,F_2,F200,F300,F400,F500:Fil); label 1,2; var graphic,graphics:integer; c:char; begin 1:CloseGraph; clrscr; graphic:=detect; InitGraph(graphic,graphics,'C:\BP\BGI'); clrscr; Assign(F,'C:\Стаб 1КВт.txt'); Assign(F_2,'C:\Стаб 2КВт.txt'); Assign(F200,'C:\Преоб 200.txt'); Assign(F300,'C:\Преоб 300.txt'); Assign(F400,'C:\Преоб 400.txt'); Assign(F500,'C:\Преоб 500.txt'); Setcolor(1); SetFillStyle(1,1); FloodFill(50,50,1); Rectangle(0,0,638,478); Setcolor(14); SetTextStyle(0,0,2); OuttextXY(90,20,'Введите нужное изделие'); Setcolor(15); SetTextStyle(0,0,1); OuttextXY(220,170,'1:Стабилизатор 1КВт'); OuttextXY(220,190,'2:Стабилизатор2КВт'); OuttextXY(220,210,'3:Преобразователь 200Вт'); OuttextXY(220,230,'4:Преобразователь 300Вт'); OuttextXY(220,250,'5:Преобразователь 400Вт'); OuttextXY(220,270,'6:Преобразователь 500Вт'); 2:c:=readkey; case c of '1': Schet_1(F,Fs); '2': Schet_1(F_2,Fs); '3': Schet_1(F200,Fs); '4': Schet_1(F300,Fs); '5': Schet_1(F400,Fs); '6': Schet_1(F500,Fs) else if c=#27 then Exit else goto 2; end; end;
PROCEDURE Vivoll(var F,Fs,F_2,F200,F300,F400,F500:Fil); label 1,2; var graphic,graphics:integer; c:char; begin 1:CloseGraph; clrscr; graphic:=detect; InitGraph(graphic,graphics,'C:\BP\BGI'); clrscr; Assign(F,'C:\Стаб 1КВт.txt'); Assign(F_2,'C:\Стаб 2КВт.txt'); Assign(F200,'C:\Преоб 200.txt'); Assign(F300,'C:\Преоб 300.txt'); Assign(F400,'C:\Преоб 400.txt'); Assign(F500,'C:\Преоб 500.txt'); Setcolor(1); SetFillStyle(1,1); FloodFill(50,50,1); Rectangle(0,0,638,478); Setcolor(14); SetTextStyle(0,0,2); OuttextXY(90,20,'‚лЎЁаҐвҐ 㦮Ґ Ё§¤Ґ«ЁҐ'); Setcolor(15); SetTextStyle(0,0,1); OuttextXY(220,170,'1:Стабилизатор 1КВт'); OuttextXY(220,190,'2:Стабилизатор 2КВт'); OuttextXY(220,210,'3:Преобразователь 200Вт'); OuttextXY(220,230,'4:Преобразователь 300Вт'); OuttextXY(220,250,'5:Преобразователь 400Вт'); OuttextXY(220,270,'6:Преобразователь 500Вт'); OuttextXY(220,290,'Esc:На главную'); 2:c:=readkey; if c='1' then begin Vivod(F); goto 1; end else if c='2' then begin Vivod(F_2); goto 1; end else if c='3' then begin Vivod(F200);goto 1; end else if c='4' then begin Vivod(F300); goto 1; end else if c='5' then begin Vivod(F400); goto 1; end else if c='6' then begin Vivod(F500); goto 1; end else if c=#27 then Exit else goto 2; end;
PROCEDURE Birth(var F,Fs,F_2,F200,F300,F400,F500:Fil); label 1,2; var graphic,graphics:integer; c:char; begin 1:CloseGraph; clrscr; graphic:=detect; InitGraph(graphic,graphics,'C:\BP\BGI'); clrscr; Assign(F,'C:\Стаб 1КВт.txt'); Assign(F_2,'C:\Стаб 2КВт.txt'); Assign(F200,'C:\Преоб 200.txt'); Assign(F300,'C:\Преоб 300.txt'); Assign(F400,'C:\Преоб 400.txt'); Assign(F500,'C:\Преоб 500.txt'); Setcolor(1); SetFillStyle(1,1); FloodFill(50,50,1); Rectangle(0,0,638,478); Setcolor(14); SetTextStyle(0,0,2); OuttextXY(90,20,'Введите оздаваемое изделие'); Setcolor(15); SetTextStyle(0,0,1); OuttextXY(220,170,'1:Стабилизатор 1КВт‚в'); OuttextXY(220,190,'2:Стабилизатор 2КВт‚в'); OuttextXY(220,210,'3:Преобразователь 200‚в'); OuttextXY(220,230,'4:Преобразователь 300‚в'); OuttextXY(220,250,'5:Преобразователь400‚в'); OuttextXY(220,270,'6:Преобразователь 500‚в'); OuttextXY(220,290,'Esc:На главную'); 2:c:=readkey; if c='1' then begin Vvod(F); goto 1; end else if c='2' then begin Vvod(F_2); goto 1; end else if c='3' then begin Vvod(F200);goto 1; end else if c='4' then begin Vvod(F300); goto 1; end else if c='5' then begin Vvod(F400); goto 1; end else if c='6' then begin Vvod(F500); goto 1; end else if c=#27 then Exit else goto 2; end; var graphic,graphics:integer; c:char; BEGIN 1:CloseGraph; ClrScr; Assign(Fs,'C:\Склад.txt'); Assign(F,'C:\Стаб 1КВт.txt'); graphic:=detect; InitGraph(graphic,graphics,'C:\BP\BGI'); Setcolor(1); SetFillStyle(1,1); FloodFill(50,50,1); Rectangle(0,0,638,478); Setcolor(14); SetTextStyle(0,0,2); OuttextXY(200,60,'Главное меню'); SetTextStyle(0,0,1); Setcolor(15); OuttextXY(200,170,'1:Создание главного файла '); OuttextXY(200,190,'2:Созлание файлов для изделий'); OuttextXY(200,210,'3:Изменение содержимого файла'); OuttextXY(200,230,'4:Изменение содержимого изделий'); OuttextXY(200,250,'5:На складе в данный момент'); OuttextXY(200,270,'6: Посмотреть состояние изделий'); OuttextXY(260,290,'Esc:Выход'); 2:c:=readkey; if c='1' then begin Vvod_SKLAD(Fs); goto 1; end else if c='2' then begin Birth(F,Fs,F_2,F200,F300,F400,F500); goto 1; end else if c='3' then begin Change(F); goto 1; end else if c='4' then begin Schet(F,Fs,F_2,F200,F300,F400,F500); goto 1; end else if c='5' then begin Vivod_SKLAD(Fs); {goto 1;} end else if c='6' then begin Vivoll(F,Fs,F_2,F200,F300,F400,F500); goto 1; end else if c=#27 then Exit else goto 2; {Assign(F,'C:\Стаб 1КВт.txt'); Vivod(F); readln;} END.
|
Зарание Большое спасибо!!! Ответ пришлите на [email protected] Это сообщение отредактировал(а) Максимус - 8.2.2005, 23:05
|