Задача на файлы. |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на файлы. |
brut03 |
Сообщение
#1
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Помогите разобраться с задачей на файлы.
В файле хранятся фамилии, название клубов, за которые играют хоккеисты, количество сыгранных игр и заброшенных шайб. Перепишите в разные файлы данные об игроках «Спартака» и «Динамо». И подскажите пожалуйста какую ни будь книгу по паскалю, где подробно разбирается этот вопрос Заранее благодарен.. -------------------- Бывает в жизни так хреново
Что даже чай не лезит в глотку А лезит в глотку только пиво Которым запиваеш водку |
Digitalator |
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 247 Пол: Мужской Репутация: 1 |
вопрос про работу с файловой системой разбирается в любой нормальной книжке по паскалю.
Уточни условие - в каком формате записан файл -------------------- |
GoodWind |
Сообщение
#3
|
Автооответчик Группа: Пользователи Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: 16 |
если можно слово-в-слово повтори текст задания
-------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
Altair |
Сообщение
#4
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
1. что за файл (типизированный\нетипизированный)
2. структура записей в файле. (если тектсовый, то как расположенны строчки, если типизированный, то какова структура recorda) -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
brut03 |
Сообщение
#5
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Файл нужно создовать самому
По идее - типизированный. -------------------- Бывает в жизни так хреново
Что даже чай не лезит в глотку А лезит в глотку только пиво Которым запиваеш водку |
volvo |
Сообщение
#6
|
Гость |
Вопрос остался открытым:
Цитата если типизированный, то какова структура recorda какая еще информация должна храниться в файле ? Сообщение отредактировано: volvo - |
brut03 |
Сообщение
#7
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Кроме той, что оговаривается в условии:
Цитата фамилии, название клубов, за которые играют хоккеисты, количество сыгранных игр и заброшенных шайб -никакой. -------------------- Бывает в жизни так хреново
Что даже чай не лезит в глотку А лезит в глотку только пиво Которым запиваеш водку |
volvo |
Сообщение
#8
|
Гость |
Тогда (при условии, что все игроки играют или за Спартак, или за Динамо), программа будет такой:
Код 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 - |
brut03 |
Сообщение
#9
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Спасибо volvo.
А как доработать прогу, что бы игроки были не только из Спартака, или Динамо? -------------------- Бывает в жизни так хреново
Что даже чай не лезит в глотку А лезит в глотку только пиво Которым запиваеш водку |
volvo |
Сообщение
#10
|
Гость |
brut03
Вместо этого: Код while not eof(f) do begin read(f, rec); if rec.club = 'spartak' then write(fS, rec) else write(fD, rec); end; поставь вот это: Код while not eof(f) do begin read(f, rec); if rec.club = 'spartak' then write(fS, rec); if rec.club = 'dinamo' then write(fD, rec); { и так далее... } { Но не забудь объявить достаточно файлов и их имен !!! } end; |
brut03 |
Сообщение
#11
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
А как проверить правильно или нет переписаны файлы SPARTAK.INF и DINAMO.INF?
-------------------- Бывает в жизни так хреново
Что даже чай не лезит в глотку А лезит в глотку только пиво Которым запиваеш водку |
volvo |
Сообщение
#12
|
Гость |
Код 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; begin viewFile( 'spartak.inf' ); { или 'dinamo.inf' } end. |
brut03 |
Сообщение
#13
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
А куда это вставить?
-------------------- Бывает в жизни так хреново
Что даже чай не лезит в глотку А лезит в глотку только пиво Которым запиваеш водку |
volvo |
Сообщение
#14
|
Гость |
Сейчас я изменю первоначальную программу...
Сообщение отредактировано: volvo - |
Текстовая версия | 11.01.2025 9:44 |