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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2013, 21:04   #1
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию Задачка по Паскалю - обработка типизированного файла "Фонотека"

Программа f2.pas считывает информацию из нетекстового файла fonotek.dat, удаляет из файла все альбомы в стиле POP и TECHNO и записывает в текстовый файл fonotek2.txt информацию об альбомах в порядке убывания года выпуска. В ней используется комбинированный тип Fonotek, тип albom (массив из 10 записей типа fonotek).

помогите пожалуйста её доделать
я не могу сделать перенос из .dat в текстовый файл, постоянно пишет ошибк
вот всё что смог сделать:
Код:
program f2;
uses crt;
type albom = record
     name: string;
     year: 1900..2100;
     category: string;
end;
var
    f:file of albom;
    s2:text;
    i,n,size:integer;
    a: array[1..10] of albom;
begin
clrscr;
writeln('Vvod information - 1, Read a fonotek.dat - 2, Drugie fonotek.dat u fonotek2.txt - 3');
read(i);
case i of

1:begin

clrscr;
assign(f,'C:\nvidia\fonotek.dat');
rewrite(f);
assign(s2,'c:\nvidia\fonotek2.txt');
reset(s2);
write('Vvedite 10 zapisei:');
writeln;
for i:=1 to 5 do
begin
     with a[i] do
     begin
          write('Name Album:');
          readln(name);
          write('God Vypuska:');
          readln(year);
          write('‘*tegory music:');
          readln(category);
          write(f,a[i]);
     end;
end;
close(f);
exit;
end;

2:begin

assign(f,'c:\nvidia\fonotek.dat');
rewrite(f);
writeln;
writeln('Soderzhanie fonotek.dat:');
writeln('|Nazvanie alboma | God Vypuska | Zhanr Musyki|');
for i:=1 to 10 do
begin
     writeln;
     writeln(a[i].name,'       ',a[i].year,'       ',a[i].category);
end;
close(f);
exit;
end;

3:begin

writeln('Izmenennaya informaziya v fonotek2.txt:');
writeln('|Nazvanie alboma | God Vypuska | Zhanr Musyki|');
assign(s2,'C:\nvidia\fonotek2.txt');
rewrite(s2);
for i:=1 to 10 do
with a[i] do
begin
     writeln;
     if(category='POP') then
     truncate(f);
     write(s2,a[i]);
     if(category='TECHNO') then
     truncate(f);
     write(s2,a[i]);
end;
readln;
close(f);
end;
end;
end.

Последний раз редактировалось maxick96; 10.10.2013 в 23:41.
maxick96 вне форума Ответить с цитированием
Старый 10.10.2013, 23:34   #2
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

ну пожалуйста помогите уже кто-нибудь!
maxick96 вне форума Ответить с цитированием
Старый 11.10.2013, 11:29   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, формальный ответ, чтобы не было ошибок компиляции, надо вместо
Цитата:
Код:
     if(category='POP') then
     truncate(f);
     write(s2,a[i]);
     if(category='TECHNO') then
     truncate(f);
     write(s2,a[i]);
нужно написать:
Код:
     writeln(s2,a[i].Name,' ',a[i].year,' ',a[i].category);
но у Вас же удаление альбомов сделано в корне НЕВЕРНО!

во-вторых, почему Вы решили с бухты-барахты, что в файле будет РОВНО десять записей?! Откуда эти неверные циклы от 1 до 10 ?!

в-третьих,
Цитата:
в текстовый файл fonotek2.txt информацию об альбомах в порядке убывания года выпуска.
где Вы сортируете по году в порядке убывания?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.10.2013, 12:48   #4
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

вот я и прошу чтобы мне переделали программу
maxick96 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка типизированного файла microlab Паскаль, Turbo Pascal, PascalABC.NET 3 20.05.2012 17:36
Обработка типизированного файла со сведениями о книгах (язык C) Светлана18 Помощь студентам 1 26.04.2011 09:00
Задачка по паскалю SweetOpium Помощь студентам 1 20.05.2008 21:11
Задачка по Паскалю... oleeg Помощь студентам 13 11.02.2007 00:05