[Pascal] Занести информацию в файл

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
qwoter
Сообщения: 3
Зарегистрирован: 28 авг 2006, 03:41

Всем привет!
Такая задача... Нужно сохранить введенные с клавиатуры данные в файл! Вот код:

Код: Выделить всё

Program zr4e;
type zap=record
nomer1,marka1,marka,data,nomer,fam:string[15];
end;
var mas:array[1..100] of zap;
k,I,n,kolzap:integer;
f:text;
q:string;
begin
writeln('===========Menu============');
writeln('1.Sozdat bazu');
writeln('2.Vivesti svedenia o kompe');
writeln('==========================');
read(k);
case k of
1: begin writeln('=====<1> Sozdanie bazi=====');
assign(f,'db.txt');
rewrite(f);
I:=1;
repeat
writeln('Vvedite marku kompa: ');
readln(mas[I].marka);
writeln(f,mas[I].marka);
writeln('=====SAVED=====');
write('Eshe zapis? (Y/N)');
read(q);
I:=I+1;
until (q='n') or (q='N');
close(f);
end;
end;
end.
Вообщем проблема в том, что при выполнении пункта 1, запрос о 'Vvedite marku kompa:' просто напросто пролистывается, запрашивает только о том, чтобы ввести еще одну запись.
Пробовал вместо readln юзать read, вообще зацикливается все напрочь :( .
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Не знаю, где ошибка, но знаю, как исправить: напиши readln(mas.marka); не 1, а 2 раза
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

я бы попробовал все Read заменить на Readln и завершать выбор Энтером. либо делать ReadKey и проверять код
Изображение
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

У меня была такая же проблема, и я знаю как её решать!
----------
Создай ещё какой-нибудь string, (например delErr: string), затем перед "readln(mas.marka);" поставь "read(delErr);"
_________
Код:

Program zr4e;
type zap=record
nomer1,delErr,marka1,marka,data,nomer,fam:string[15];
end;
var mas:array[1..100] of zap;
k,I,n,kolzap:integer;
f:text;
q:string;
begin
writeln('===========Menu============');
writeln('1.Sozdat bazu');
writeln('2.Vivesti svedenia o kompe');
writeln('==========================');
read(k);
case k of
1: begin writeln('=====<1> Sozdanie bazi=====');
assign(f,'db.txt');
rewrite(f);
I:=1;
repeat
writeln('Vvedite marku kompa: ');
read(delErr);
readln(mas.marka);
writeln(f,mas.marka);
writeln('=====SAVED=====');
write('Eshe zapis? (Y/N)');
read(q);
I:=I+1;
until (q='n') or (q='N');
close(f);
end;
end;
end.
_________________
Должно сработать!
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Ответить