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 - 4)
мисс_граффити
сообщение 3.12.2006 21:11
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


1. чтобы найти количество элементов, иди циклом по файлу (пока не EOF(f)) и каждый раз прибавляй к переменной-счетчику записей единицу.
2. а тебе удаление как таковое не нужно: в старом файле запись остается... просто в новый ее не надо писать.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 4.12.2006 13:59
Сообщение #3


Профи
****

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

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


у меня появились вопросы:
предполагается, что у меня есть исходный файл (по смыслу задачи не текстовый, а файл записей) записей(там содержатся фио студентов и их оценки по 3-м предметам). вопрос вот какой - перед тем , как связывать этот файл с файловой переменной, мне нужно создать исходный файл на диске, а с каким расширением(чтоб потом элементы исходного файла считать в массив)?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 4.12.2006 15:36
Сообщение #4


Профи
****

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

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


Цитата(18192123 @ 4.12.2006 13:59) *

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


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

пожалуйста, объясните, как быть?

Сообщение отредактировано: 18192123 - 4.12.2006 15:37
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 4.12.2006 19:36
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


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

Если ты собираешься работать с готовым файлом - безусловно, его бы неплохо создать.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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