Помощь - Поиск - Пользователи - Календарь
Полная версия: Запись в файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
PUMA
Самого задания я точно не помню,но смысл был примерно такой:нужно было создать файл с номерами рейсов и кол-ом свободных мест на них, а так же надо было чтобы программа при вводе номера рейса выводила кол-во свободных мест.
вот что у меня получилось:
var r:byte;
f:text;
begin
writeln('vvedite nomer reisa');
readln®;
assign(f,'C:\mesta.txt');
rewrite(f);
case r of
1:writeln('svobonih mest 5');
2:writeln('svobonih mest 4');
3:writeln('svobonih mest 8');
4:writeln('svobonih mest 3');
5:writeln('svobonih mest 6');
else writeln('na dannom reise net svobodnih mest');
read;
end;
write;
read®;
begin
write(f,r);
close(f);
end;
end.

у меня получилось только внести в файл номер рейса biggrin.gif подскажите пожалуйста как сделать так ,чтобы в текстовом файле были номера рейсов и кол-во свободных мест huh.gif
Client
для текстового можно в одну строчку записывать номер и количество. Потом по файлу пройти, читая строки и сравнивая, есть ли указанный номер или нет.
Lapp
Цитата(PUMA @ 25.06.2010 13:37) *

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

Мне почему-то кажется, что смысл не в создании файла программно, а в выдаче инфы по нему. То есть, файл ты можешь создать, например, в Блокноте, назови его типа "flight_info.txt", а внутренности набери типа так:

567 5
768 3
843 10
123 0
234 2
987 25

(учти, что ни в начале, ни в конце файла не должно быть пустых строк!!)
Тогда твоя прога будет примерно такой:
Write('введите номер рейса: ');
ReadLn®;
Assign(f,'flight_info.txt);
n:=-1;
Reset(f);
while not EoF(f) and (n<0) do begin
ReadLn(f,r1,n1);
if r=r1 then n:=n1
end;
Close(f);
if n>=0 then
WriteLn('на рейсе ',r,' есть ',n,' свободных мест')
else
WriteLn('рейс ',r,' не найден');

Но ты лучше все-таки уточни задание, чтоб не гадать ). Но делать выбор рейса в операторе case - это в любом случае неправильно..
PUMA
blush.gif а N для чего нужна? nea.gif что это такое?
P.S:уточнить задачу не получится,наверное...я ее никуда не записала.это было на экзамене blink.gif

Добавлено через 8 мин.
выводит ошибку №2,фаил не найден blink.gif
var r,n,n1,r1:integer;
f:text;
begin
Write('vvedite nomer reisa: ');
ReadLn®;
Assign(f,'D:\flight_info.txt');
n:=-1;
Reset(f); {вот сюда указывает}
while not EoF(f) and (n<0) do begin
ReadLn(f,r1,n1);
if r=r1 then n:=n1
end;
Close(f);
if n>=0 then
WriteLn('na reise ',r,' est ',n,' svobodnih mest')
else
WriteLn('na reise',r,' net svobodnih mest');
readln;
end.
Client
а создать файлик не судьба? ))
PUMA
Судьба)создала)я уж не совсем того crazy.gif что ж я по вашему путь просто так указала) biggrin.gif
Lapp
Цитата(PUMA @ 27.06.2010 12:14) *
а N для чего нужна? nea.gif что это такое?
это количество мест на ЗАДАННОМ рейсе. Сначала в него кладем -1 - это как бы признак того, что рейс еще не найден. Если введенного номера рейса нет в файле, то в n так и останется -1. Значит, если значение n больше либо равно 0, то рейс найден, а n - это количество свободных мест на нем. Угу?

Цитата
выводит ошибку №2,фаил не найден
Насколько я понимаю, ТР не умеет работать с именами файлов длиннее 8 символов. Переназови файл, сделай его типа fli_info.txt . Поскольку я давно не имею дела с ТР, то и забыл об этом, извини..
PUMA
спасибоcool.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.