Помощь - Поиск - Пользователи - Календарь
Полная версия: типизированный файл
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Coach
Необходимо используя типизированный файл сделать задачу:
В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны номер рейса, тип самолета, пункт назначения, время вылета. Имеются справочники по расстоянию между всеми возможными пунктами назначения и по расходу горючего на тысячу километров для каждого типа самолета. Написать программу для хранения указанной информации в файле и формировании заявки на горючее на следующий день (количество в тоннах).
Чего-то не могу понять даже как организовать ввод - вывод текста в типизированном файле,чтобы можно было нормально вводить и выводить данные по расписанию,да и вообще подскажите как сформировать заявку по горючему.
Coach
Почему ,если есть f:file of string и в самом файле к примеру 5 букв в ,то как мне их прочитат из файла ,если я пишу read(f,tip),где tip:string,то выдает ошибку диск рид эрор,если делаю tip:string[5] i f:file of string [5] ,то тоже не проходит.
volvo
File of string <> Text
Чтобы читать из File of string, надо сначала записать данные не как обычный текст, а как file of string (нулевой байт = длине строки, дальше - собственно строка)... А ты наверняка пытаешься обычный текстовый файл (созданный, скажем, в Блокноте) читать как типизированный?
Coach
Цитата(volvo @ 1.06.2008 12:59) *

Чтобы читать из File of string, надо сначала записать данные не как обычный текст, а как file of string (нулевой байт = длине строки, дальше - собственно строка)... А ты наверняка пытаешься обычный текстовый файл (созданный, скажем, в Блокноте) читать как типизированный?

Т.е если я хочу прочитать из файла строку из пяти букв В ,то в сам файл нужно записать 5ввввв ,так?
volvo
Из КАКОГО файла ты можешь сказать, или это военная тайна??? Ты КАК создал файл?
Coach
В блокноте ....
Coach
Program NeTekst;


type reis=record
N0:integer;
Vrem:string;
Pynkt:record
Rastoenie:integer;
PynktNazn:string;
end;
tipSamoleta:record
tip:string;
Gorygee:integer;
end;
end;


var t:file of reis;
sved,sved1,sved2:reis;
n,i,v,m,gor:integer;



Procedure Zapis;
begin
assign (t,'d:\netex.txt');
rewrite (t);
writeln ('Kol-vo tipov samoletov:');
readln (v);
For i:=1 to v do
begin
readln (sved1.tipSamoleta.tip);
readln (sved1.tipSamoleta.Gorygee);
write (t,sved1);
end;


writeln ('Kol-vo pynktov:');
readln (m);
For i:=1 to m do
begin
readln (sved2.Pynkt.PynktNazn);
readln (sved2.Pynkt.Rastoenie);
write (t,sved2)
end;

writeln ('Vvedite kol-vo reisov:');
readln (n);
For i:=1 to n do
begin
sved.N0:=i;
readln (sved.tipSamoleta.tip);
readln (sved.Pynkt.PynktNazn);
readln (sved.Vrem);
write (t,sved);
end;

close (t);


{readln (sved.Vrem);
readln (sved.Pynkt.Rastoenie);
readln (sved.Pynkt.PynktNazn);
readln (sved.tipSamoleta.tip);}
end;


Procedure Vivod;
begin
assign (t,'d:\netex.txt');
reset (t);
seek (t,0);
While not EOF(t) do
begin
read (t,sved);
writeln (sved.tipSamoleta.tip);
writeln (sved.Pynkt.PynktNazn);
writeln (sved.Vrem);
end;
close (t);
end;


Procedure KolvoGor;
begin
assign (t,'d:\netex.txt');
reset (t);
seek (t,0);
While not EOF(t) do
begin
read (t,sved1);
{read (t,sved2);}
Gor:=sved2.Pynkt.Rastoenie*sved1.tipSamoleta.Gorygee;
writeln (gor);
end;
close (t);
end;

begin
Zapis;
Vivod;
KolvoGor;
readln;
end.
Блин запутался как посчитать горючее ....
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.