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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 01:59   #1
Катя100
Пользователь
 
Регистрация: 21.04.2013
Сообщений: 14
По умолчанию Запись файла

Подскажите,я хотела,чтобы в файл записывались данные...вроде бы компилятор ошибки не выдает,но программа вылетает сама..
Код:
program kursovik;
uses crt;
type baza=record
  fam:string[15];
  pol:char;
  god:string;
  zarp:string;
 
end;
label god1,zarp1;
var f:file of baza;
    punkt:byte;
    bd:baza;
    code,v,m:integer;
begin
assign(f,"ac1.txt);
 if oiresult<>0 then
 begin 
 writeln('sozdat fail');
 rewrite(f);
 end;
while true do
begin
clrscr;
writeln('                                  MENU                      ');
writeln('1:Vvod');
writeln('2:Prosmotr');
writeln('3:Poisk');
writeln('4:Exit');
readln(punkt);
case punkt of
1:begin
  repeat
  begin
   write('Vvedite familia I.O.  ');
   readln(bd.fam);
   write('Vvedite pol(m/w) ');
   readln(bd.pol);
   god1:write('Vvedite god postyplenia na raboty  ');
   readln(bd.god);
   val(bd.god,v,code);
   if code<>0 then
             begin
             textcolor(14);
             writeln('Neverno vvedena data ',bd.god);
             textcolor(7);
             goto cnova_god;
             end;
   zarp1:write('Vvedite zarplaty  ');
   readln(bd.zarp);
   val(bd.zarp,v,code);
   if code<>0 then
             begin
             textcolor(14);
             writeln('Neverno vvedina zarplata ',bd.zarp);
             textcolor(7);
             goto cnova_zarp;
             end;
  write(f,'|', bd.fam:15,'|');
  write(f, bd.pol:3, '|');
  write(f,bd.god:10,'|');
  writeln(f,bd.zarp:9,'|');
  writeln('Prodolgit?Da-1,Net-0');
   readln(m);
   end;
  until m=0;
  close(f);
  end;
2:writeln('Vyvod');
3:writeln('Poisk');
4:Exit;
else
  writeln('Net');
end;
end;
readln;
end.

Последний раз редактировалось Stilet; 12.05.2013 в 10:09.
Катя100 вне форума Ответить с цитированием
Старый 12.05.2013, 09:12   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

В какой момент вылетает?
Цитата:
Код:
assign(f,"ac1.txt);//имя файла должно быть между кавычками, а не после одной двойной
if oiresult<>0 then// может IOresult?
Дальше не смотрел, т.к форматирование отсутствует.
Цитата:
вроде бы компилятор ошибки не выдает
, могу посоветовать сменить компилятор
P.S. IOResult - проверяет наличие ошибки ввода/вывода, и ставить его надо после ввода/вывода, т.е. после rewrite, а не assign. Ну и должна быть выключена директива процессора по проверки ошибок ввода/вывода.
eoln вне форума Ответить с цитированием
Старый 12.05.2013, 09:31   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ой ужас..
Для начала код на форуме оформляется тегом [ CODE] [/CODE](только убрать пробелы).
Цитата:
Дальше не смотрел
И слава Богу!
Уже вижу там goto.. А что такое пользовательские процедуры\функции девушка не слышала.. Вообщем страх и мрак..
Poma][a вне форума Ответить с цитированием
Старый 12.05.2013, 10:20   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
вроде бы компилятор ошибки не выдает
Стесняюсь спросить, а ты вообще компилятор запускала?
Например goto cnova_god; Это что? Где эта метка описана?
По мысли если ничего не убирать из стратегии то программа должна выглядеть так:
Код:
  assign(f,'ac1.txt');
   if ioresult=0 then
   begin
   writeln('sozdat fail');
   rewrite(f);
   end;
  while true do
  begin
  writeln('                                  MENU                      ');
  writeln('1:Vvod');
  writeln('2:Prosmotr');
  writeln('3:Poisk');
  writeln('4:Exit');
  readln(punkt);
  case punkt of
  1:begin
    repeat
    begin
     write('Vvedite familia I.O.  ');
     readln(bd.fam);
     write('Vvedite pol(m/w) ');
     readln(bd.pol);
     god1:write('Vvedite god postyplenia na raboty  ');
     readln(bd.god);
     val(bd.god,v,code);
     if code<>0 then
               begin
               writeln('Neverno vvedena data ',bd.god);
               goto god1;
               end;
     zarp1:write('Vvedite zarplaty  ');
     readln(bd.zarp);
     val(bd.zarp,v,code);
     if code<>0 then
               begin
               writeln('Neverno vvedina zarplata ',bd.zarp);
               goto zarp1;
               end;
    write(f,bd);
    writeln('Prodolgit?Da-1,Net-0');
     readln(m);
     end;
    until m=0;
    closefile(f);
    end;
  2:writeln('Vyvod');
  3:writeln('Poisk');
  4:Exit;
  else
    writeln('Net');
  end;
  end;
  readln;
I'm learning to live...

Последний раз редактировалось Stilet; 12.05.2013 в 10:26.
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись файла vovken1997 Общие вопросы Delphi 9 25.01.2013 21:01
Запись файла YourLastSong Общие вопросы C/C++ 0 09.10.2011 21:20
Запись файла Angryant Общие вопросы C/C++ 1 06.07.2011 00:03
запись файла dedyshka PHP 5 07.12.2009 17:15
Запись из файла в переменную Sekt Общие вопросы C/C++ 1 20.10.2009 13:02