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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2013, 18:13   #1
Cstln
 
Регистрация: 04.05.2013
Сообщений: 8
По умолчанию Вопрос по файлам

Здравствуйте!
Моя программа записывает в первый файл с заданное позиции заданное кол-во записей из второго. В ABC.Pascal всё работает, но в Борланд совершенно непонятно почему всё вылетает. Если закомментировать части кода, выделенные жирным, то не вылетает.

Не подскажите, в чём ошибка?

Код:
program PROGR2;
uses crt;
const n=5; {В каждом файле изначально 5 записей}
type
    Record1=record
          name:string[20];
          year:integer;
          number:integer;
    end;
var
        f1,f2,f3:file of Record1;
        i:integer;
        t:Record1;
        
        pos:integer;
        num:integer;

begin
clrscr;


assign(f1,'RECORD1.TXT');
assign(f2,'RECORD2.TXT');

reset(f1); {Вывод на экран первоначального содержимого обоих файлов}
writeln('Table 1');
for i:=1 to n do
    begin
    read(f1,t);
    writeln(i,' || ',t.name:10,' | ',t.year,' | ',t.number,' |');
    end;
writeln('_____________________________');
writeln;
close(f1);

reset(f2);
writeln('Table 2');
for i:=1 to n do
    begin
    read(f2,t);
    writeln(i,' || ',t.name:10,' | ',t.year,' | ',t.number,' |');
    end;
writeln('_____________________________');
close(f2);

readln;
clrscr;

reset(f1);
reset(f2);

writeln('Position');  {Вод позиции, с которой начинается запись, и количества перемещаемых элементов}
readln(pos);
writeln('Number of records');
readln(num);

assign(f3,'z.txt'); {Ввожу вспомогательный файл f3}
rewrite(f3);

if pos>1 then {Сначала записываю в f3 элементы f1 до нужно позиции}
  begin
    for i:=0 to pos-2 do
        begin
        read(f1,t);
        write(f3,t);
        end
  end;
 
  
for i:=1 to num do {Переношу в f3 из f2}
  begin
  read(f2,t);
  write(f3,t);
  end;
  
while not eof(f1) do {Переношу остатки из f1}
  begin
  read(f1,t);
  write(f3,t);
  end;


close(f2);
close(f1);  
close(f3);

erase(f1); {Заменяю f3 на f1}
rename(f3,'RECORD1.TXT');


  


readln;
clrscr;


assign(f1,'RECORD1.TXT'); {Снова вывожу содержимое на запись}
assign(f2,'RECORD2.TXT');

reset(f1);
writeln('Table 1');
for i:=1 to n do
    begin
    read(f1,t);
    writeln(i,' || ',t.name:10,' | ',t.year,' | ',t.number,' |');
    end;
writeln('_____________________________');
writeln;
close(f1);

reset(f2);
writeln('Table 2');
for i:=1 to n do
    begin
    read(f2,t);
    writeln(i,' || ',t.name:10,' | ',t.year,' | ',t.number,' |');
    end;
writeln('_____________________________');
close(f2);



readln;
end.
Cstln вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по литерным файлам groop Общие вопросы C/C++ 9 13.06.2011 14:00
Вопрос по H файлам в с++ Яр|/||< (^_^) Свободное общение 4 23.03.2010 13:17
Вопрос по файлам Molotoff Общие вопросы C/C++ 4 20.06.2009 21:58
Вопрос по файлам. True Общие вопросы Delphi 5 06.05.2008 11:15