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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2011, 21:03   #1
Zalmancheg
 
Регистрация: 09.12.2010
Сообщений: 3
Восклицание Работа с типизированными файлами

Даны 2 типизированных файла, в одном записи: ФИО и Дата рождения, в другом: записи Дата принятия на работу и Специализация. Необходимо объединить из в 3-ем типизированном файле.
Вот собственно мой код:
Код:
uses crt;
type info=record
     fio:string;
     dateborn:string;
     datework:string;
     spec:string;
end;
var f1:file of info;
    f2:file of info;
    f3:file of info;
    file1,file2,file3:info;
    i,c:byte;

begin
clrscr;
 assign(f1, 'c:\f1.txt');
 assign(f2, 'c:\f2.txt');
 assign(f3, 'c:\f3.txt');
 reset(f1);
 reset(f2);
 reset(f3);
 while not(eof(f1)) do begin
  read(f1, file1);
  write(f3, file1);
 end;
 while not(eof(f2)) do begin
  read(f2, file2);
  write(f3,file2);
 end;
 close(f1);
 close(f2);
 close(f3);
end.
Но у меня получается при объединении так, что записи из двух файлов как бы не зависимы, т.е. сохраняются ввиде, например:
---------------------------------
Вася 19.03.96
Петя 20.09.87
23.09.43 Слесарь
31.09.43 Монтажник
------------------------------------------
А надо:
--------------------------
Вася 19.03.96 23.09.43 Слесарь
Петя 20.09.87 31.09.43 Монтажник
------------------------------
Помогите разобраться.

Последний раз редактировалось Serge_Bliznykov; 11.03.2011 в 21:55.
Zalmancheg вне форума Ответить с цитированием
Старый 11.03.2011, 22:01   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1-я ошибка - А зачем Вы выходной файл открываете на чтение?!
Вы же туда писать собираетесь?
Цитата:
Код:
 reset(f3);
надо:
Код:
rewrite(f3);
2-е. для того, что "собрать" запись из двух файлов, нужно их читать в одном цикле:
Код:
while not(eof(f1)) do begin
  read(f1, file1);
  if not eof(f2) then begin
       Read(f2,file2);
       {перенесём нужные поля из второй записи в первую запись}
       file1.datework := file2.datework; 
       file1.spec := file2.spec; 

       {запишем результат в третий файл}
      write(f3, file1);
  end
  else WriteLn('Второй файл закончился раньше первого! Ошибка!');
 end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.03.2011, 23:15   #3
Zalmancheg
 
Регистрация: 09.12.2010
Сообщений: 3
По умолчанию

Спасибо огромное))я б не допер...
Zalmancheg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с типизированными файлами! Anton5 Помощь студентам 6 01.07.2010 12:55
Работа с типизированными файлами bo-al Помощь студентам 2 27.02.2010 19:18
Работа с типизированными файлами. Darangel Помощь студентам 1 17.05.2009 19:19