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

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

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

> Не могу найти ошибку, Записи в файле
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 65
Пол: Мужской

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


I. Удалить из внешнего файла все записи, удовлетворяющие условию, заданному в варианте, и распечатать информацию, оставшуюся в файле.
II. Добавить N записей в конец внешнего файла

я так понял,что добавить необходимо в первоначальный вариант введенных данных,а не в тот файл,где находятся записи подходящие нашему условию.
Условие такого:удалить тех у кого отличные оценки и в аттестате и при вступительных экзаменах,а добавить например 2-х человек,а затем распечатать тех,кто сдал вступительные экзамены на 4 и 5(я так понял из все вообще введенных студентов,т.е изначальные+добавленные)!Заранее всем огромное спасибо! yes2.gif

вот мой код:
uses crt;
type abit=record
fio:string[20];
godrow:integer;
godokon:integer;
at_mat:integer;
at_rus:integer;
at_fiz:integer;
Obwaga:char;
ab_mat:integer;
ab_rus:integer;
ab_fiz:integer;
end;
var
f,f1:file of abit;
s,r1,r:abit;
ch:char;
i,k,n,m:integer;
key1,key2:boolean;

procedure Vvod;
begin
with s do
begin
writeln;
writeln('______');
writeln('Vvedite dannue o ',i,'-m abiture:');
writeln('_______');
writeln('vvedite FIO:');
readln(Fio);
writeln('Vvedite God rowd:');
readln(godrow);
writeln('Vvedite god okonch wkolu:');
readln(godokon);
writeln;
writeln('Vvedite ozenki attestata:');
writeln('matematika:');
readln(at_mat);
writeln('Russkij:');
readln(at_rus);
writeln('fizika');
readln(at_fiz);
writeln;
key1:=false;
writeln('Nuwna obwaga:[y/n]');
readln(obwaga);
if (obwaga in ['Y','y','N','n']) then key1:=true;
writeln;
writeln('Vvedite ozenki vstupit ekzov:');
writeln('matematika');
readln(ab_mat);
writeln('Russkij');
readln(ab_rus);
writeln('fizika');
readln(ab_fiz);
write(f1,r);
end;
end;

procedure udal;
var
i,j:integer;
begin
reset(f1);
for i:=1 to filesize(f1) do
with r do begin
if (at_mat<>5) and (at_rus<>5) and (at_fiz<>5) and (ab_mat<>5) and (ab_rus<>5)
and (ab_fiz<>5) then
write(f,s);
end;
end;


procedure Vivod;
begin
reset(f);
while not eof(f) do
begin
read(f,s);
with s do begin
writeln('|',fio,'|',godrow,'|',godokon,'|',at_mat,'|',at_rus,'|',at_fiz,'|',ab_mat,'|',ab_rus,'|',ab_fiz,'|',obwaga,'|');
end;
end;
close(f);
end;

Procedure sortirovka;
var
i,j,n:integer;
f:text;
begin
reset(f1);
n:=filesize(f1)-1;
for i:=0 to n do begin
for j:=0 to n-1 do begin
seek(f1,j);
read(f1,r);
read(f1,r1);
with s do begin
if r.at_fiz>r1.at_fiz then
begin
seek(f1,j);
write(f1,r1);
write(f1,r);
end;
end;
end;
end;
close(f1)
end;

procedure dobav;
var
j,i,k:integer;
c:char;
l:boolean;
begin
reset(f1);
writeln('Dobavit tovar?,Esli da,to nawmite Y,esli net to lubuju knopko');
readln©;
i:=0;
while c='y' do
begin
i:=i+1;
with r1 do
begin
writeln('vvedite FIO:');
readln(Fio);
writeln('Vvedite God rowd:');
readln(godrow);
writeln('Vvedite god okonch wkolu:');
readln(godokon);
writeln;
writeln('Vvedite ozenki attestata:');
writeln('matematika:');
readln(at_mat);
writeln('Russkij:');
readln(at_rus);
writeln('fizika');
readln(at_fiz);
writeln;
key1:=false;
writeln('Nuwna obwaga:[y/n]');
readln(obwaga);
if (obwaga in ['Y','y','N','n']) then key1:=true;
writeln;
writeln('Vvedite ozenki vstupit ekzov:');
writeln('matematika');
readln(ab_mat);
writeln('Russkij');
readln(ab_rus);
writeln('fizika');
readln(ab_fiz);

end;
k:=0;
reset(f1);
l:=false;
while (not eof(f1)) do
begin
read(f1,r);
k:=k+1;
if r.at_fiz=r1.at_fiz then
begin
seek(f1,k-1);
for j:=(k-1) to filesize(f)-2 do
begin
seek(f1,j+1);
read(f1,r);
seek(f1,j);
write(f1,r);
end;
seek(f1,filesize(f1)-1);
truncate(f1);
write(f1,r1);
l:=true;
end;
end;
if l=false then
begin
seek(f1,filesize(f1));
write(f1,r1);
end;
writeln('Dobavit tovar?Ecli da,to nawmite Y,esli net to lubuju knopku');
readln©;
end;
clrscr;
close(f1);
end;

procedure Vivod2;
begin
reset(f1);
while not eof(f1) do
begin
read(f1,r);
with r do begin
writeln('|',fio,'|',godrow,'|',godokon,'|',at_mat,'|',at_rus,'|',at_fiz,'|',ab_mat,'|',ab_rus,'|',ab_fiz,'|',obwaga,'|');
end;
end;
close(f1);
end;





begin
clrscr;
assign(f1,'zad8.dat');
rewrite(f1);
writeln('Programmu vupolnyal student 1-ogo kursa Zimin Egor');
writeln('_____________________________________________________');
writeln(' ');
writeln('vvedite kol tovarov-');
readln(n);
for i:=1 to n do
begin
vvod;
end;
close(f1);
assign(f,'zad8.dat');
rewrite(f);
udal;
vivod;
dobav;
vivod2;
readln;
end.








 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 65
Пол: Мужской

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


Можно вопрос?Вот например я ввел нное колличество записей в файл,так...далее я проверяю на какое-либо условие...если данная запись удовлетворяет условию,то она записывается в другой файл!Теперь вопрос,а запись записанная в другой файл,останется в изначальном файле?или безвозвратно перепишется?Заранее спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Zundell   Не могу найти ошибку   22.01.2007 4:13
мисс_граффити   а ты пытаешься удалять что-то совсем не то: wit…   22.01.2007 4:25
volvo   В чем глубинный смысл вот этой процедуры: procedur…   22.01.2007 4:26
мисс_граффити   только заметила. как думаешь, что после assign(f,…   22.01.2007 4:27
Zundell   To Volvo, я хотел так сделать...сначала я вводил и…   22.01.2007 4:35
мисс_граффити   ну, в общем, разбирайся с условием, которое я тебе…   22.01.2007 5:23
Zundell   Можно вопрос?Вот например я ввел нное колличество …   22.01.2007 20:35
мисс_граффити   Останется, конечно. Представь: ты взял учебник и н…   22.01.2007 22:01
Zundell   А можно подругому удалить удовлетворяющее условие?…   22.01.2007 22:16
мисс_граффити   Можно. Например, если порядок не критичен, можно н…   22.01.2007 22:38
Zundell   Панятна,ааа нет...но ведь мне еще нужно ко ВСЕМ за…   22.01.2007 22:54
мисс_граффити   :blink: Я так понимаю, удаляем лишнее, а потом …   22.01.2007 22:59
Zundell   нет..нада вывести файл с удаленным лишним!а до…   22.01.2007 23:35
мисс_граффити   ну тогда так: все, что не надо удалять, пишешь в н…   23.01.2007 1:20
Zundell   панятна..спасибо!Щя все сделаю   23.01.2007 1:36


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

 





- Текстовая версия 21.12.2024 23:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name