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

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

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

> Помогите найти ошибку
сообщение
Сообщение #1


Гость






Довольно простая программа, но тем не менее ошибку найти не могу.
Когда пытаюсь открыть файл для дозаписи в конец файла выдает:"Error 63: Invalid file type". В чем может быть ошибка? unsure.gif
Код
Program studentdata;
const
N = 3;
type
tstudent = record
name: string;
result: byte;
end;
text = file of tstudent;
var
f: text;
i: integer;
man: tstudent;
begin
assign (f, 'C:\pascal\pascal1\readme.doc');
append (f);
For i:= 1 to N do
begin
write ('‚Введите имя: ');
readln(man.name);
write('‚Введите оценку: ');
readln (man.result);
writeln(f, man);
end;
close (f);
reset(f);
i:= 0;
while not EOF (f) do
begin
readln ( man.result);
if man.result = 5 then
i:= i+1;
end;
writeln( 'Число отличников: ',i);
close (f);
end.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 8)
сообщение
Сообщение #2


Гость






Yarche,
Цитата
В чем может быть ошибка?
Да не может быть, а есть... Каким образом ты собрался типизированный файл открывать процедурой Append? Это возможно только для текстовых файлов...

Чтобы открыть типизированный файл на дозапись в конец, делай:
Reset(f);
Seek(f, FileSize(f));


Кстати, и на ReadLn/WriteLn ты тоже получишь ошибку. Для File Of ... допустимо только Read/Write...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Спасибо. Ошибок больше не обнаружил.
Исправил Readln/writeln на read/write, но судя по всему он не записывает в файл. Поэтому где-то есть еще ошибка(и) smile.gif
З.Ы.: работой с файлами в Паскале занялся недавно, так что пока многое не понятно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Не знаю, не знаю, у меня вот это отработало прекрасно:
Program studentdata;
const
N = 3;
type
tstudent = record
name: string;
result: byte;
end;
text = file of tstudent;

var
f: text;
i: integer;
man: tstudent;

begin
assign (f, 'readme.doc');

reset(f);
seek(f, filesize(f));
For i:= 1 to N do begin
write('Введите имя: '); readln(man.name);
write('Введите оценку: '); readln (man.result);
write(f, man);
end;

close(f);
reset(f);
i := 0;
while not EOF (f) do begin
read(f, man);
if man.result = 5 then i:= i+1;
end;
writeln( 'Число отличников: ',i);
close (f);
end.
cool.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Хм...вроде работает, но не совсем так, как хотелось бы. Программа должна записывать в файл имя и оценку (проверив файл я обнаружил, что он пустой).
И она должна считать сколько отличников (т.е. сколько оценок "5" мы ввели), у меня она каким то образом насчитала аж 7 отличников из 3ех возможных. blink.gif Я это имел ввиду. unsure.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Хочешь, я вышлю тебе тот файл, который у меня был создан программой? Я же говорю, что работает. Какой компилятор у тебя?

Кстати, а файл ДО запуска программы существовал? Если нет, то вообще будет сбой, если ДА, то какой у него был размер?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Borland Turbo Pascal 7.0. Прикрепи пожалуйста файл. wink.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата(Лог работы)
Введите имя: Ivanov
Введите оценку: 3
Введите имя: Petrov
Введите оценку: 4
Введите имя: Sidorov
Введите оценку: 5
Число отличников: 1


Тестировалось на FPC 2.0.0
Вот тот файл, что получился (в архиве):


Прикрепленные файлы
Прикрепленный файл  readme.rar ( 93 байт ) Кол-во скачиваний: 172
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Премного благодарен give_rose.gif
 К началу страницы 
+ Ответить 

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

 





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