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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2013, 20:44   #1
Wahoo
Новичок
Джуниор
 
Регистрация: 09.10.2013
Сообщений: 2
По умолчанию Используя записи, написать программу, которая формирует базу Компакт-диски

Используя записи, написать программу, которая формирует базу Компакт-диски (Исполнитель, альбом, число песен, год). Программа выводит альбом, число песен, год выхода на вводимого с клавиатуры исполнителя.
Wahoo вне форума Ответить с цитированием
Старый 10.10.2013, 09:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

типичная задача на типизированные файлы.
Таких на форуме было много.
Раз Вы тему создали не в разделе "Фриланс", то собираетесь писать программу самостоятельно. Это похвально!
нужно:
1) задать (описать) тип record, который содержит все необходимые поля
2) описать файловую переменную заданного типа
3) написать код ввода данных в файл (запрос данных у пользователя, потом, с помощью Write( f, ПеременнаяТипаКомпактДиск ) записывать данные очередного диска в файл
4) обеспечить последовательное чтение типизированного файла в цикле
5) написать вывод полей данных записи на экран (в виде строки таблицы, например)
6) в цикле проверять совпадение ЗаданногоИсполнителя с прочитанным из файла (см. п.п. 4) и 5) ), если совпало - выдавать данные на экран.

профит.

Что конкретно у Вас не получается?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.10.2013, 19:23   #3
Wahoo
Новичок
Джуниор
 
Регистрация: 09.10.2013
Сообщений: 2
По умолчанию

Код:
Program ghff;
type disk=record
     name: string[30]; {Исполнитель}
     alb: string[10]; {Альбом}
     chislo:integer; {Число песен}
     god: integer; {Год}
end;
var
     f:text; {Текстовый файл}
begin
writeln('Поиск исполнителя');
Assign(f,'E:\Muzik.txt');reset(f);
repeat
write('Исполнитель->') ; readln(disk.name);
if Length(name) <> 0 then {Пользователь ввел строку}
begin
reset(f); {Просматриваем файл от начала}
while not EOF(f) do {Просматриваем файл от начала}
begin
{Читаем из файла}
readln(f,alb);
readln(f,chislo);
readln(f,god);
if alb = chislo then {Найден альбом}
begin
writeln(alb,' ',chislo, ' ',god,');
end
else writeln('Сведений о' , name,' нет.');
end;
close(f);
end;
until Length(name) = 0;
writeln('Для завершения работы нажмите <Enter>.');
readln;
end.
Код:
write('Исполнитель->') ; readln(disk.name);
в disk.name место точки требует скобку.
Wahoo вне форума Ответить с цитированием
Старый 11.10.2013, 09:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

правильно требует.
то, что Вы описали в секции type - это, ожидаемо, ТИП переменной.
А Вам теперь нужно определить типизированный (бинарный файл) с вашей структурой и ПЕРЕМЕННУЮ нужного типа.
это должно выглядеть примерно так:
Код:
Program ghff;
type disk=record
     name: string[30]; {Исполнитель}
     alb: string[10]; {Альбом}
     chislo:integer; {Число песен}
     god: integer; {Год}
end;

var
     f:file of disk; {Типизированный файл}
     OneDisk : disk; {переменная типа disk}
begin
  writeln('Поиск исполнителя');
  Assign(f,'E:\Muzik.dat');
  rewrite(f); {ВНИМАНИЕ! Эта строчка ПЕРЕЗАПИСАТЬ ФАЙЛ!}
  repeat
     write('Исполнитель->') ; readln(OneDisk.name);
     if length(OneDisk.name>0) then begin
       write('Альбом->') ; readln(OneDisk.alb);
       write('Число песен (целое значение) ->') ; readln(OneDisk.chislo);
       write('Год (целое значение) ->') ; readln(OneDisk.god);
     
        Write(f, OneDisk);  {запишем переменную в файл}
     end;
  until length(OneDisk.name)=0;
  Close(f); {закроем файл. При этом сбросятся на диск все буфера}

  Reset(f); {откроем файл для чтения}
  ...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с записью файлов на компакт-диски V.Sergey Помощь студентам 1 13.04.2013 15:32
Задача на множества.Написать программу не позволяющую вводить буквы русского алфавита.(написать подпрограммой используя процедуры ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 3 09.02.2013 13:53
Составить программу, которая формирует 2 списка, и написать процедуру присоединения 2го списка к 1му Neitrosha Помощь студентам 7 25.02.2011 21:18
Написать программу, которая формирует квадратную матрицу nxn andruxa-forever Помощь студентам 0 02.02.2011 12:03
Где вы храните компакт-диски? unicode Свободное общение 11 23.05.2009 01:49