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

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

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

 
 Ответить  Открыть новую тему 
> не понятная ошибка при чтении из файла элементы поля типа ЗАПИСЬ., Странная ошибка,не оторбажаются символы при цикле чтения файла While n
сообщение
Сообщение #1


Бывалый
***

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

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


спасибо!
появилась ешё 1 проблема...(сколькож можно..)

Читаем последний пост

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


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

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

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


не в файле дело.
смотри:
Tabl = array [1..10] of Card;
Scard:Tabl;


 i:=0;
while not eof(f) do {есле этот цикл заменить на цикл for,то все прекрасно выводиться,но надо указывать N самостоятельно} //ты ведь в цикле for делаешь i:=1 to n, а не i:=0 to n, правда?...
begin
read(f,Scard[i]);//чему i равно при первом проходе? 0, правильно? и куда ты считываешь?
i:=i+1;
end;


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


Бывалый
***

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

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


спасибо.
Посмотри ,пожалуйста,ешё первый пост,я исправил ,и добавил новый вопрос..=/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


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

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

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


не надо было исправлять - лучше бы отдельно написал.
 if q=1 then
begin <-----!вот
writeln('Vvedite familiu');
repeat
readln(Fam);
if (Length(Fam) >14 ) or (Length(Fam) <1) then
begin
writeln('Maks. dlina familii 14.Min. 1!');
writeln('Povtorite Vvod!');
end;
until (Length(Fam) in [1..24]);
{...ввод...}
end; <----! от добавленного begin


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


Бывалый
***

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

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


спасибо!помогло!=)

Теперь ешё одна проблема

После удаления элемента из массива записей,и последующей записи данных в файл,программа перестает читать файл,и выдает ошибку Disk read error..
В чем проблема?

Вот процедура удаления,сохранения,и загрузки файла.

Procedure FileRead;
var
X:byte;
Path:string;
begin
repeat
Writeln('Vvedite pyt k faily');
readln(path);
assign(f,path);
{$I-}
reset(f);
x:=IORESULT;
{$I+}
if x<>0 then
writeln('Oshibka! Ne verno ykazan pyt!');
until (x=0);
path:='n';
assign(f2,path);
reset(f2);
read(f2,n);
close(F2);
for i:=1 to n do
begin
read(f,Scard[i]); {<<-- вот здесь ошибка выскакивает}
end;
close(f);
end;



Procedure FileSave;
var
x:byte;
path:string;
begin
repeat
Writeln('Vvedite imya faila i pyt');
readln(path);
assign(f,path);
{$I-}
rewrite(f);
x:=IORESULT;
{$I+}
if x<>0 then
writeln('Oshibka! Ne verno ykazano imya i pyt!');
until (x=0);
for i:=1 to n do
write(f,Scard[i]);
close(f);
end;


procedure DeleteT( var Scard:tabl);
var
q,w,e,r,t:byte;
begin
Writeln('Vvedite nomer stydenta,kotorogo hotite ydalit iz tablici');
repeat
readln(q);
if (q<1) or (q>n) then
writeln('Vi neverno vveli nomer stydenta!Povtoite Vvod!');
until(q in [1..n]);
for i:=q to n do
begin
Scard[i].Sname:=Scard[i+1].Sname;
Scard[i].Vball:=Scard[i+1].Vball;
for j:=1 to 4 do
Scard[i].Ekz[j]:=Scard[i+1].Ekz[j];
For k:=1 to 3 do
Scard[i].Zach[k]:=Scard[i+1].Zach[k];
end;
n:=n-1;
Output(Scard);
ENd;


и навсякий случай,процедура вывода на экран информации :
 procedure OutPut(var Scard:tabl);
begin
Writeln ('Vivod informacii');
DrawTablHead;
for i:=1 to n do
begin
write('і # ',i);
write('і',Scard[i].Sname);
DlinaF(Scard[i].Sname);
for j:=1 to h do
write(' ');
write('і');
if (Scard[i].Vball)>9 then
write(' ',Scard[i].VBall,' і')
else
write(' ',Scard[i].VBall,' і');
write(Scard[i].Ekz[1],' і');
write(Scard[i].Ekz[2],' і');
write(Scard[i].Ekz[3],' і');
write(Scard[i].Ekz[4],' і');
write(Scard[i].Zach[1],' і');
write(Scard[i].Zach[2],' і');
write(Scard[i].Zach[3],' і');
writeln;
end;
drawtabllegs;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


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

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

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


хмм...
вот здесь ты n изменяешь:
 procedure DeleteT( var Scard:tabl);
...
n:=n-1;

а изменяется ли оно в файле 'n'?


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


Бывалый
***

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

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


хм..ты правда..чертова невнимательность=/спасибо огромное!=)
+1 Вам,Юлия!=)

Сообщение отредактировано: Andrewshkovskii -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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