1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
в файле хранится информация о каждом студенте группы: ф.и.о. и оценки по 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:fileof stud; p:stud;
procedure creat_arh;
var
t1,t2,t3:byte;
begin
reset(f);
rewrite(f1);
whilenot eof(f) dowith p dobegin
readln(f,fio,tp,info,matan);
if tp=2then t1:=0else t1:=tp;
if info=2then t2:=0else t2:=info;
if matan=2then t3:=0else 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('================================');
whilenot eof(f1) dobegin
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 dobegin
seek(f1,i);
read(f1,p);
with p doif (t1=0and t2=0and t3=0) thenbeginfor j:=i to n-1dobegin
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;}endelse 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. а тебе удаление как таковое не нужно: в старом файле запись остается... просто в новый ее не надо писать.
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
у меня появились вопросы: предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?
у меня появились вопросы: предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?
ещё один вопросик: а может мне лучше сначала создать этот исходный файл записей, где хранится фио студента и оценки по 3-м предметам?
Расширение может быть практически любое (в разумных пределах, конечно). В олимпиадных задачах это часто оговаривается: например, входной файл с расширением in, выходной - с out. Естественно, делать его exe или jpeg не стоит...
Если ты собираешься работать с готовым файлом - безусловно, его бы неплохо создать.
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!