IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на файлы.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9

Репутация: -  0  +


Помогите разобраться с задачей на файлы. sad.gif sad.gif sad.gif
В файле хранятся фамилии, название клубов, за которые играют хоккеисты, количество сыгранных игр и заброшенных шайб. Перепишите в разные файлы данные об игроках «Спартака» и «Динамо».
И подскажите пожалуйста какую ни будь книгу по паскалю, где подробно разбирается этот вопрос sad.gif sad.gif
Заранее благодарен.. unsure.gif


--------------------
Бывает в жизни так хреново
Что даже чай не лезит в глотку
А лезит в глотку только пиво
Которым запиваеш водку
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Тогда (при условии, что все игроки играют или за Спартак, или за Динамо), программа будет такой:

Код

type
 TPlayer =
   record
     name: string[25];
     club: string[20];
     games: word;
     scores: word;
   end;
 FPlayer = file of TPlayer;

const
 filename = 'COMMON.INF';
 spartak  = 'SPARTAK.INF';
 dinamo   = 'DINAMO.INF';


procedure createFile(var f: FPlayer; name: string);
 begin
   assign(f, name);
   {$I-} rewrite(f); {$I+}
   if IOResult <> 0 then
     begin
       writeln( 'cannot create new file...' );
       halt(100)
     end;

 end;

{ Проверяет правильность заполнения файла с именем name }
procedure viewFile(name: string);
var f: FPlayer;
begin
assign(f, filename);
{$I-} reset(f); {$I+}
if IOResult <> 0 then
 begin
   writeln( 'cannot open file...' ); halt(101)
 end;

while not eof(f) do
 begin
   read(f, rec);
   with rec do
     writeln( name, '  ', club, ' ', games:4, ' ', scores:4 );
 end;

close(f);
end;



{ создает файл COMMON.INF с начальными данными -
  старый файл с именем COMMON.INF будет уничтожен }
procedure initFile;
 var
   f: FPlayer;
   r: TPlayer;
   ans: char;
 begin
   createFile(f, filename);
   repeat
     write('name:> '); readln(r.name);
     write('club:> '); readln(r.club);
     write('games:> '); readln(r.games);
     write('scores:> '); readln(r.scores);
     write(f, r);
     writeln;
     writeln('another player ? (y/n)');
     readln(ans);
   until (upcase(ans) <> 'Y');
   close(f)
 end;

var
 f, fD, fS: FPlayer;
 rec: TPlayer;
begin
 initFile;

 assign(f, filename);
 {$I-} reset(f); {$I+}
 if IOResult <> 0 then
   begin
     writeln( 'cannot open file...' ); halt(101)
   end;

 createFile(fD, dinamo);
 createFile(fS, spartak);

 while not eof(f) do
   begin
     read(f, rec);
     if rec.club = 'spartak' then
       write(fS, rec)
     else
       write(fD, rec);
   end;

 close(fS); close(fD);
 close(f);

 { для проверки правильности создания файла... }
 viewFile( 'spartak.inf' ); { или 'dinamo.inf' }

end.


Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 7.09.2025 4:12
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name