Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2009, 02:35   #11
Ake
Пользователь
 
Аватар для Ake
 
Регистрация: 12.02.2009
Сообщений: 22
По умолчанию

Не компилируется, когда берешь в скобки...
Ake вне форума Ответить с цитированием
Старый 14.02.2009, 02:43   #12
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тогда "убейте" напрочь эту процедуру, закомментируйте обращение к ней ниже и пробуйте компилировать. То есть пытайтесь компилировать кусками.
Когда все будет в порядке, добавите ручками, заново процедуру просмотра. Сначала - пустую (с точкой с запятой - т.е. с пустым оператором), откомпилируйте, потом - введете текст.
mihali4 вне форума Ответить с цитированием
Старый 14.02.2009, 02:47   #13
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Работает, но не могу сказать, что это хороший результат. Я бы вам посоветовал переписать с нуля (не дополнять мой вариант, а хотя бы только подглядывать в него (все-таки я его писал прямо в окне редактирования, поэтому, естественно, там есть ошибки))

Количество записей хранится в элементе number 1-й записи.
Код:
Program lab;
Uses crt;
type pribor = record
number : integer; { порядковый номер }
id : integer; {инвентарный номер }
naimen: string;
naznach : string; { назначение }
dateYear : integer; {дата изготовления: год}
dateMounth : integer; { дата изготовления: месяц }
cena : real; { цена }
end;

var pribors : array[1..20] of pribor; { pribors - массив из 20 приборов }
f : file of pribor; {-- файл с записями--}
i,NMAX : integer;
name_in: string;
option: word;
num, numel : integer;
{...............}

procedure vvod(num : integer); {num - номер записи }
begin
with pribors[num] do
begin
 number := num;
 writeln('vvedite inventarnui nomer: ');
 readln(id);
 writeln('naimenovanie: ');
 readln(naimen);
 writeln('naznachenie: ');
 readln(naznach);
 writeln('god izgotovleniya: ');
 readln (dateYear);
 writeln('Cena: ');
 readln(cena)
 end;
end;

procedure delpribor(num : integer); { удаление прибора с номером num }
var i : integer;
begin
for i:=num to NMAX do { NMAX - количество приборов }
begin
pribors[i].number := pribors[i+1].number;
pribors[i].id := pribors[i+1].id;
pribors[i].naznach := pribors[i+1].naznach;
pribors[i].naimen:= pribors[i+1].naimen;
{ -- также с остальными элементами --}
dec(NMAX); {-- теперь приборов на 1 меньше --}
end;
end;

procedure pedit(num : integer; numel : integer);
begin
writeln('vuderite nomer dlia redakt, 1- invent nomer,');
writeln(' 2 - nazn-e, 3 - naimenovanie, 4 - data, 5 - cena');
{был лишний begin }
case numel of
1 : begin
    writeln('tekuchee zn-e: id=',pribors[num].id);
    writeln('novove zn-e=: ');
    readln(pribors[num].id);
end;
2 : begin
    Writeln( 'tekuchee zn-e: naznach=', pribors[num].naznach);
    Writeln('novoe zn-e: ');
    Readln(pribors[num].naznach);
    end;
3 : begin
    Writeln('tekuchee zn-e: naimenovanie=', pribors[num].naimen);
    Writeln('novoe zn-e: ');
    Readln(pribors[num].naimen);
    End;
4: begin
   Writeln('tekuchee zn-e: data=', pribors[num]. dateYear);
   Writeln('novoe zn-e: ');
   Readln(pribors[num]. dateYear);
   End;
5: begin
   Writeln( 'tekuchee zn-e: cena=', pribors[num].cena);
   Writeln('novoe zn-e: ');
   Readln(pribors[num].cena);
   end;
 end;  {добавил end для case }
end;
{------------}
procedure prosmotr(num : integer); { --просмотр записи с номером num --}
begin
with pribors[i] do
begin
writeln('nomer zapisi: ',number);
writeln('inventarn nomer: ', id);
writeln('Naimenovanie: ', naimen);
writeln('Naznachenie: ', naznach);
writeln('godizgotovleniya: ',dateYear);
writeln('cena: ', cena);
end;
end;
{.....................}

begin
{ -- программа --}
Writeln('vvedite imia faila');
Readln(name_in);
assign(f,name_in);
{$I-}
reset(f); {-- если файла нет - создаем --}
{$I+}
if ioresult <> 0 then
  begin
  rewrite(f);
  pribors[1].number := 1;
 { pribors[1].id := 0;
  pribors[1].naznach := '';
  pribors[1].naimen := '';
  pribors[1].dateYear :=0;
  pribors[1].dateMounth := 0;
  pribors[1].cena := 0;  }
  write(f,pribors[1]);
  close(f);
  reset(f);
  end;
read(f,pribors[1]); {-- т.к. файл хранит записи, то придется хранить количество }
{  записей в элементе number первой записи (сорри за тавтологию) --}
NMAX := pribors[1].number;
writeln('Vsego zapisey: ',NMAX);
for i:=2 to NMAX do
 begin
 read(f,pribors[i]);
 end;
textcolor(11);
writeln('1 - vvod zapisi, 2 - redact, 3 - udalenie, 4 - prosmotr, 5 - vuhod');
readln(option);
case option of
1: begin
   writeln(' vvod zapisi: ');
   { readln(num);   - это не нужно. Записи следуют одна за другой. Нельзя давать пользователю }
    { право самостоятельно задавать индекс }
   vvod(NMAX+1);
   inc(NMAX);
   end;
2: begin
   writeln('vvedite nomer dlia redact ');
   readln(num);
   writeln('vvedite nomer elementa: ');
   readln(numel);   { можно добавить описание (какой номер для какого элемента) }
   pedit (num, numel);
   end;
3: begin
   writeln('vvedite nomer dlia udaleniya ');
   readln(num);
   delpribor (num);
   end;
4: begin
   writeln('vvedite nomer dlia prosmotra');
   readln(num);
   prosmotr (num);
   end;
5: exit;
end;

{ сохраняем все в файл }
close(f);
rewrite(f);
pribors[1].number := NMAX;
for i:=1 to NMAX do
 begin
 {prosmotr(i);  }
 write(f,pribors[i]);
 end;
close(f);

writeln;
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите по работе с текстовыми файлами ЕвгениуS Помощь студентам 9 17.01.2010 15:10
Задача на Паскале работа с текстовыми файлами. StudUL Помощь студентам 3 21.12.2008 23:24
помогите с задачей на Delphi(с типизированными файлами) lyonya0111 Помощь студентам 2 20.06.2008 15:18
ошибка 105 (при работе с типизированными файлами) sdp Общие вопросы Delphi 8 11.07.2007 11:12