в файле хранится информация о каждом студенте группы: ф.и.о. и оценки по 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.
мисс_граффити
4.12.2006 1:11
1. чтобы найти количество элементов, иди циклом по файлу (пока не EOF(f)) и каждый раз прибавляй к переменной-счетчику записей единицу. 2. а тебе удаление как таковое не нужно: в старом файле запись остается... просто в новый ее не надо писать.
18192123
4.12.2006 17:59
у меня появились вопросы: предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?
18192123
4.12.2006 19:36
Цитата(18192123 @ 4.12.2006 13:59)
у меня появились вопросы: предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?
ещё один вопросик: а может мне лучше сначала создать этот исходный файл записей, где хранится фио студента и оценки по 3-м предметам?
пожалуйста, объясните, как быть?
мисс_граффити
4.12.2006 23:36
Расширение может быть практически любое (в разумных пределах, конечно). В олимпиадных задачах это часто оговаривается: например, входной файл с расширением in, выходной - с out. Естественно, делать его exe или jpeg не стоит...
Если ты собираешься работать с готовым файлом - безусловно, его бы неплохо создать.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.