Помощь - Поиск - Пользователи - Календарь
Полная версия: текстовый файл и файл записей
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
18192123
в файле хранится информация о каждом студенте группы: ф.и.о. и оценки по 3-м предметам. переписать эти данные в другой файл записей исключая сведения о неуспевающих студентах.(для работы с файлом - только assign,reset,rewrite, close, eof, rename, erase,seek)что-то получилось, но некоторые моменты не понятны

uses crt;
type stud=record
fio:string[15];
tp:byte;
info:byte;
matan:byte;
end;
VAR f:text; f1:file of stud; p:stud;
procedure creat_arh;
var
t1,t2,t3:byte;
begin
reset(f);
rewrite(f1);
while not eof(f) do
with p do
begin
readln(f,fio,tp,info,matan);
if tp=2 then t1:=0
else t1:=tp;
if info=2 then t2:=0
else t2:=info;
if matan=2 then t3:=0
else t3:=matan;
end;
close(f);
close(f1);
writeln('enter!!!');
readln;
end;
procedure write_arh;
var
i:integer;
begin
reset(f1);
writeln('Otsenki');
Writeln('===============================');
writeln(':fio studenta:tp:info:matan:');
writeln('================================');
while not eof(f1) do
begin
read(f1,p);
with p do
writeln(':',fio,':',tp:7,':',info:7,':',matan:7,':');
end;
writeln('===============================');
close(f1);
writeln('enter!!!');
readln;
end;
procedure U_stud;
var n,k,i,j:integer;
begin
reset(f1);
i:=0;
n:={хочу найти кол-во компонентов в файле записей, но не знаю как, если без
filesize}-1;
k:=0;
while i<=n do
begin
seek(f1,i);
read(f1,p);
with p do
if (t1=0 and t2=0 and t3=0) then
begin
for j:=i to n-1 do
begin
seek(f1,j+1);
read(f1,p);
seek(f1,p);
seek(f1,j);
write(f1,p);
end;
seek(f1,n);
{ а как удалить без truncate не знаю
n:=n+1;
k:=k+1;}
end
else i:=i+1;
end;
close(f1);
end;

BEGIN
assign (f,'d:\stud.txt');
creat_arh;
write_arh;
U_stud;
write_arh;
end.





мисс_граффити
1. чтобы найти количество элементов, иди циклом по файлу (пока не EOF(f)) и каждый раз прибавляй к переменной-счетчику записей единицу.
2. а тебе удаление как таковое не нужно: в старом файле запись остается... просто в новый ее не надо писать.
18192123
у меня появились вопросы:
предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?
18192123
Цитата(18192123 @ 4.12.2006 13:59) *

у меня появились вопросы:
предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?


ещё один вопросик:
а может мне лучше сначала создать этот исходный файл записей, где хранится фио студента и оценки по 3-м предметам?

пожалуйста, объясните, как быть?
мисс_граффити
Расширение может быть практически любое (в разумных пределах, конечно). В олимпиадных задачах это часто оговаривается: например, входной файл с расширением in, выходной - с out. Естественно, делать его exe или jpeg не стоит...

Если ты собираешься работать с готовым файлом - безусловно, его бы неплохо создать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.