• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте где мы мы рассказываем о себе. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Паскаль, типизированные файлы, помогите доделать

  • Автор темы Автор темы Dan2011
  • Дата начала Дата начала

Dan2011

Ученик
Регистрация
4 Дек 2011
Сообщения
3
Реакции
0
Баллы
0
Паскаль, типизированные файлы, помогите доделать

У меня есть запись подготовленных данных (код), не знаю как сделать следующее: Разработать программу записи подготовленных данных во внешний файл, вывод исходных данных из файла, добавление данных в файл.
Необходимо использовать меню. Пожалуйста, кому не жалко времени, напишите код до конца.
Код:
uses crt;
type
studlib=record
FIO:string;
Birth_Date:string;
Course:integer;
Year: word;
Marks:Array [1..3] of integer;
Mmark: Real;
end;

var
stud: Array [1..10] of studlib;
i,N: integer;
Procedure Out_Date (std: Studlib);
var j: integer;
begin
with std do
begin
write (FIO);
FOR J:=Length (FIO)+ 1 TO 30 DO WRITE ('');
WRITE (Birth_Date);
write (Course:3);
write (Year:5);
for j:= 1 to 3 do
write (Marks [j]:4);
writeln (Mmark:7:2);
end;
end;
BEGIN
clrscr;
N:=0;
writeln ('Vvеdite dannie o studentah');
repeat
Inc(N);
WITH stud[N] do
begin
write ('FIO:');
readln(FIO);
WRITE ('Birth Date (dd.mm.yyyy.):');
readln(Birth_Date);
write('Course');
write('Year of entry:');
readln(Year);
Mmark:=0;
for i:=1 to 3 do
begin
write('Mark',i,'=');
readln(Marks);
Mmark:=Mmark+Marks/3;
end;
end;
clrscr;
writeln ('Enter-prodoljiti, ESC-vyiti');
until (readkey=#27) or (N=100);
clrscr;
writeln ('Stipendiaty:');
for i:=1 to N do
if stud. Mmark>=7.0 then
Out_Date(stud);
readkey;
END.
 
Вот какая-то подсказка как сделать, только не понимаю как. Знатоки, вся надежда на вас.
type
studlib=record
FIO:string;
Birth_Date:string;
Course:integer;
Year: word;
Marks:Array [1..3] of integer;
Mmark: Real;
end;

var
i: integer;
studrec : studlib; {запись}
StudFile: file of studlib; {сам файл}
begin
Fillchar(StudRec,Sizeof(StudRec),0); {зачищаем от мусора}
Assign(StudFile, 'StudFile.dat'); {объявляем файл }
Rewrite(StudFile); {создаем или открываем Reset файл}

for i:=1 to 10 do {и чего нибудь пишем в него....}
begin
StudRec.Course := i;
Write(StudFile, StudRec);
end;

Close(StudFile); {не забываем закрыть}
end. {для того чтобы прочитать или записать нужную запись}
{не забываем позиционирование на нее Seek(StudFile, MyRecNo)}
 
Очень прошу извинить.
 
Назад
Сверху