Страница 1 из 1

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

Добавлено: 22 ноя 2006, 20:35
qwoter
Всем привет!
Такая задача... Нужно сохранить введенные с клавиатуры данные в файл! Вот код:

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

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, вообще зацикливается все напрочь :( .

Добавлено: 23 ноя 2006, 00:02
Хыиуду
Не знаю, где ошибка, но знаю, как исправить: напиши readln(mas.marka); не 1, а 2 раза

Добавлено: 23 ноя 2006, 13:55
Игорь Акопян
я бы попробовал все Read заменить на Readln и завершать выбор Энтером. либо делать ReadKey и проверять код

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

Добавлено: 05 дек 2006, 16:45
Колядин Максим
У меня была такая же проблема, и я знаю как её решать!
----------
Создай ещё какой-нибудь 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.
_________________
Должно сработать!