Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2017, 00:45   #1
yabusic
 
Регистрация: 20.11.2016
Сообщений: 6
По умолчанию Запись и вывод данных в/из типизированного файла

Доброго времени суток!
Необходима помощь: нужно организовать ввод данных в типизированный файл (.dat ) с возможность вывода их ( данных ) в виде таблицы через оный.
Код:
program a1337;
type vuzi = record
nazv_v:string[20];
chislo_s:1..500;
kol_f:1..50;
kol_kaf:1..50;
end;
const n=5;
var i:byte; v:array[1..n] of vuzi;
a:string;
begin
for i:=1 to n do
begin
writeln('Задайте название');readln(v[i].nazv_v);
writeln('Задайте число студентов');readln(v[i].chislo_s);
writeln('Задайте кол-во факультетов');readln(v[i].kol_f);
writeln('Задайте кол-во кафедр');readln(v[i].kol_kaf);
end;
///Вот эти данные
writeln('Название вуза',' Кол-во студентов',' Кол-во факультетов',' Кол-во кафедр');
writeln;
for i:=1 to n do
with v[i] do
writeln(nazv_v:4,' ',chislo_s:4,' ',kol_f:2,' ',kol_kaf:2);
///
writeln('Поиск по названию вуза: задайте название:');readln(a);
for i:=1 to n do
with v[i] do
begin
if(a=nazv_v) then
begin
writeln('***');
writeln('Название вуза: ', nazv_v);
writeln('Общее число студентов: ', chislo_s);
writeln('***');
end;
writeln
end;end.
yabusic вне форума Ответить с цитированием
Старый 04.02.2017, 12:41   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Заменить массив на переменную типа vuzi, ввести файловую переменную того же типа
Код:
v: vuzi;myfile: file of vuzi;
Файл открыть (создать в случае отсутствия), перейти в конец файла, записать, закрыть
Код:
assign(myfile, 'myfile.dat');
{$I-}reset(myfile);{$I+}
if ioresult <> 0 then rewrite(myfile);
seek(myfile, filesize(myfile));
for i:=1 to n do
begin
writeln('Задайте название');readln(v.nazv_v);
writeln('Задайте число студентов');readln(v.chislo_s);
writeln('Задайте кол-во факультетов');readln(v.kol_f);
writeln('Задайте кол-во кафедр');readln(v.kol_kaf);
write(myfile, v);
end;
close(myfile)
Если не нужно хранение данных до следующего запуска программы то вместо
Код:
{$I-}reset(myfile);{$I+}
if ioresult <> 0 then rewrite(myfile);
seek(myfile, filesize(myfile));
достаточно написать
Код:
rewrite(myfile);
Вывод аналогично, открываем, читаем, закрываем
Код:
///Вот эти данные
writeln('Название вуза',' Кол-во студентов',' Кол-во факультетов',' Кол-во кафедр');
writeln;
reset(myfile);
while not eof(myfile) do begin
read(myfile, v);
with v do 
writeln(nazv_v:4,' ',chislo_s:4,' ',kol_f:2,' ',kol_kaf:2);
end;
close(myfile);
///
Код не проверял
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись в конец типизированного файла mefisto74 Lazarus, Free Pascal, CodeTyphon 18 28.09.2015 22:36
вывод на экран содержимого типизированного файла. pascal fanat_iam Помощь студентам 2 20.12.2013 16:25
Считать запись из типизированного файла в динамическую очередь ( Delphi ) SeregaVili Помощь студентам 10 22.05.2013 11:20
Запись и чтение типизированного файла (Паскаль). Учёт заказов мебели Jlovenpk1 Помощь студентам 1 29.11.2012 09:30
Запись типизированного файла из текстового. Lubawa Паскаль, Turbo Pascal, PascalABC.NET 18 05.11.2011 11:27