
Другие языки программирования и технологии
Решение задач по паскалю
Подскажите способ решения данной задачи (Решать её за меня не прошу). Можно ли как-то информацию из текстового файла перенести в одномерный массив?

вот похожая, переделай немного
{Расписание электричек хранится в текстовом файле на диске. каждая запись
содержит название пункта назначения, пометки типа "СВ", "ПВ","КСВ" И время
отправления. написать программу, выполняющую след. условия:
1) корректировку или дополнение расписания с клавиатуры;
2)сортировку по станции назначения или по времени отправления;
3) вывод на экран информации о поездах, отходящих после введенного времени;
4) запись расписания в файл под тем же или новым именем.
Процедура Append( var f: Text ) служит для специального открытия
выходных файлов. Она применима к уже существующим физическим файлам
и открывает из для дозаписи в конец файла. }
program spisoks;
uses crt;
const namebd='bd.txt';
type spisok=record
punkt:string[20];
tip:string[10];
cas,min:integer;
//min,n:integer;
//min:integer;
end;
var
k,y:integer;
tbl:array[1..100] of spisok;
f,f1:Text;
w,c:spisok;
z:char;
procedure Make;
var l:string; i,n:integer;
begin
clrscr;
writeln('создание файла');
assign(f,namebd);
rewrite(f);
z:='y';
while z='y' do begin
with w do begin
Write('пункт отправления ');
ReadLn(punkt);
Write('время отправления (час мин) ');
ReadLn(cas,min);
Write('тип вагонов ("СВ", "ПВ","КСВ") ');
ReadLn(tip);
writeln(f,w.punkt);
writeln(f,w.cas);
writeln (f,w.min);
writeln(f,w.tip);
end;
writeln('Данные успешно добавлены');
writeln('добавить еще?(y/n)');
readln(z);
end;
writeln('Задание закончено');
close(f);
writeln('Данные успешно сохранены. нажмите Enter.');
readln;
end;
procedure Dozap;
var
i,n:integer;
begin
clrscr;
writeln('Дозапись файла');
assign(f,namebd);
Append(f);
z:='y';
while z='y' do begin
with w do begin
Write('пункт отправления ');
ReadLn(punkt);
Write('время отправления (час мин) ');
ReadLn(cas,min);
Write('тип вагонов ("СВ", "ПВ","КСВ") ');
ReadLn(tip);
writeln(f,w.punkt);
writeln(f,w.cas);
writeln (f,w.min);
writeln(f,w.tip);
end;
writeln('Данные успешно добавлены');
writeln('добавить еще?(y/n)');
readln(z);
end;
writeln('Задание закончено');
close(f);
writeln('Данные успешно сохранены. нажмите Enter.');
readln;
end;
procedure show;
var i:integer;
begin
writeln('просмотр файла');
assign(f,namebd);
reset(f);
writeln(' пункт | время |тип вагона');
i:=0;
while not eof(f) do
begin
inc(i);
readln(f,w.punkt);
readln(f,w.cas);
readln(f,w.min);
readln(f,w.tip);
writeln(' ',w.punkt,'| ',w.cas,':',w.min,'| ',w.tip);
end;
readln;
close(f);
end;
{Расписание электричек хранится в текстовом файле на диске. каждая запись
содержит название пункта назначения, пометки типа "СВ", "ПВ","КСВ" И время
отправления. написать программу, выполняющую след. условия:
1) корректировку или дополнение расписания с клавиатуры;
2)сортировку по станции назначения или по времени отправления;
3) вывод на экран информации о поездах, отходящих после введенного времени;
4) запись расписания в файл под тем же или новым именем.
Процедура Append( var f: Text ) служит для специального открытия
выходных файлов. Она применима к уже существующим физическим файлам
и открывает из для дозаписи в конец файла. }
program spisoks;
uses crt;
const namebd='bd.txt';
type spisok=record
punkt:string[20];
tip:string[10];
cas,min:integer;
//min,n:integer;
//min:integer;
end;
var
k,y:integer;
tbl:array[1..100] of spisok;
f,f1:Text;
w,c:spisok;
z:char;
procedure Make;
var l:string; i,n:integer;
begin
clrscr;
writeln('создание файла');
assign(f,namebd);
rewrite(f);
z:='y';
while z='y' do begin
with w do begin
Write('пункт отправления ');
ReadLn(punkt);
Write('время отправления (час мин) ');
ReadLn(cas,min);
Write('тип вагонов ("СВ", "ПВ","КСВ") ');
ReadLn(tip);
writeln(f,w.punkt);
writeln(f,w.cas);
writeln (f,w.min);
writeln(f,w.tip);
end;
writeln('Данные успешно добавлены');
writeln('добавить еще?(y/n)');
readln(z);
end;
writeln('Задание закончено');
close(f);
writeln('Данные успешно сохранены. нажмите Enter.');
readln;
end;
procedure Dozap;
var
i,n:integer;
begin
clrscr;
writeln('Дозапись файла');
assign(f,namebd);
Append(f);
z:='y';
while z='y' do begin
with w do begin
Write('пункт отправления ');
ReadLn(punkt);
Write('время отправления (час мин) ');
ReadLn(cas,min);
Write('тип вагонов ("СВ", "ПВ","КСВ") ');
ReadLn(tip);
writeln(f,w.punkt);
writeln(f,w.cas);
writeln (f,w.min);
writeln(f,w.tip);
end;
writeln('Данные успешно добавлены');
writeln('добавить еще?(y/n)');
readln(z);
end;
writeln('Задание закончено');
close(f);
writeln('Данные успешно сохранены. нажмите Enter.');
readln;
end;
procedure show;
var i:integer;
begin
writeln('просмотр файла');
assign(f,namebd);
reset(f);
writeln(' пункт | время |тип вагона');
i:=0;
while not eof(f) do
begin
inc(i);
readln(f,w.punkt);
readln(f,w.cas);
readln(f,w.min);
readln(f,w.tip);
writeln(' ',w.punkt,'| ',w.cas,':',w.min,'| ',w.tip);
end;
readln;
close(f);
end;
Геннадий Ксенчук
остальное не влезло, если интересно, пришлю всю прогу в адрес
Marat Bg
Спасибо, мне хватило этого кода, чтобы разобраться
Я бы написал как-то так:
readalllines('имятекстовогофайла').select(line->new recordtype(line)).printlines
readalllines('имятекстовогофайла').select(line->new recordtype(line)).printlines
Похожие вопросы
- Помогите пожалуйста с решением задач в паскале
- Помогите с программой, пожалуйста! (Pascal) Или подскажите, где можно найти различные решения задач на Паскале?
- Помогите написать код для решения задачи в Паскале
- Напишите программу на языке Паскаль для решения задачи:
- Помогите пожалуйста найти ошибку в решении задачи по информатике(паскаль) !!!Прошу очень нужно!!!задача простая!!!
- Pascal. Помогите пожалуйста решить задачу в паскале !
- ПОМОГИТЕ С ЗАДАЧАМИ В ПАСКАЛЕ
- Помогите, пожалуйста с задачей :( Сижу, туплю уже какой день, вообще не соображу - чтокуда. Задача на Паскале
- Недавно начал изучать программирование (не с полного нуля), но мои решения задач слишком громоздкое, это нормально?
- помогите с решение задачи на Турбо паскале