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

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

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

> текстовый файл и файл записей
18192123
сообщение 3.12.2006 20:16
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


в файле хранится информация о каждом студенте группы: ф.и.о. и оценки по 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.





 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 

- Текстовая версия 29.07.2025 9:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"