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

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

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

> Работа с файлами в Паскале.
Анисия
сообщение 4.12.2008 12:24
Сообщение #1


Новичок
*

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

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


Создаю типизированный файл, в процедуре Inputfile, при вводе данных в файл происходит зацикливание почему не могу разобраться, помогите пожалуйста.

Program Tamazov;
uses Crt,Dos;
type detsad=record
Sname_rebenka, Name_rebenka:string[15];
pol:string[5];
FIO_mama:string[30];
FIO_papa:string[30];
telephon:integer;
group:string[10];
data_rogdenia:string[30];
adres:string[20];
end;
var f:file of detsad;
zn, filename:string;
k:integer;
kolnime:integer;
ch:char;
label 11;

procedure Creatfile; {Создание файла}
begin

{writeln('Задайте имя файла, который будет создаваться'); }
{ filename:='c:\bp\bin\'; }
{ readln(filename); }
assign(f, 'c:\bp\bin\deti.dat');
{$I-}
reset(f);
{$I+}
if IOResult<>0 then
rewrite(f);
end;

procedure Inputfile;
var ch:char; st:detsad;
begin
kolnime:=0;

repeat
writeln('Введите данные о новом клиенте : ');
write('Фамилия ребенка: '); readln(st.Sname_rebenka);
write('Имя ребенка: '); readln(st.Name_rebenka);
write('Группа: '); readln(st.group);
write('Пол: '); readln(st.pol);
write('ФИО матери: '); readln(st.FIO_mama);
write('ФИО отца: '); readln(st.FIO_papa);
write('Телефон: '); readln(st.telephon);
write('Дата рождение: '); readln(st.data_rogdenia);
write('адрес: '); readln(st.adres);

write(f,st);
write('Надо ли вводить данные о новом клиенте? (Д/Н)');
readln(ch);

until (ch='н') or (ch='Н');
close(f);
end;
Begin 11:clrscr;
writeln('МЕНЮ:':45);
writeln('*************************':55);
writeln('1:Создание файла':50);
readln(k);
While ch<>#27 Do Begin

case k of 1: begin Creatfile; Inputfile end;
6: Halt;
else writeln('Ошибка. Повторите номер режима.')
end;
end;
goto 11;
End.




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


Гость






Цитата
Зацикливание то у меня вот здесь
Тебе сказали, где у тебя зацикливание... В основной программе... Хочешь убедиться - добавь
...
write(f,st);
write('Надо ли вводить данные о новом клиенте? (Д/Н)');
readln(ch);

until (ch='н') or (ch='Н');
Writeln('Вышли из цикла, нажми Enter'); readln; { <--- Вот эту строку }
...

, и посмотри, как поведет себя программа... А чтобы она работала как ты задумал - надо сделать:
repeat
clrscr;
writeln('МЕНЮ:':45);
writeln('*************************':55);
writeln('1:Создание файла':50);
readln(k);
case k of
1:
begin Creatfile; Inputfile end;
6: ; { <--- Это для выхода, ничего не делать }
else
writeln('Ошибка. Повторите номер режима.')
end;
until k = 6; { <--- Вот и выход }


Сообщение отредактировано: volvo - 5.12.2008 10:32
 К началу страницы 
+ Ответить 

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


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

 



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