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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2010, 18:23   #1
Cool_cool_death
Новичок
Джуниор
 
Регистрация: 14.04.2010
Сообщений: 4
По умолчанию Работа с записями (типизированные файлы)Paskal

Доброго времени суток, уважаемые

Задание в общих чертах такое: нужно создать некую базу по продаже автомобилей, в которой содержится модель, номер машины, дата объявления, цена и пр. Оформить все как запись.
Вопросов, собственно, несколько.
1) Как создать конкретный типизированный файл на физическом носителе с любым расширением? Кидаю команду rewrite, файл создается, но после ввода всегда пустой - 0 байт. Почему и как найти выход?
2) Каким образом организовать статистику по конкретным параметрам? Ну, допустим, нужно посчитать, какая средняя цена по каждой модели, и вывсети это таблицей. Таблицу я худо-бедно организовать смогу, а вот выборку...Плаваю и зависаю

Если что - наброски уже имеющегося кода могу предоставить.
Заранее спасибо!
Cool_cool_death вне форума Ответить с цитированием
Старый 14.04.2010, 18:39   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

1)используйте close(f); после окончания ввода
2)считывайте в массив с типом array of ваша_запись и делайте с ним и в нем что угодно
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 14.04.2010, 18:46   #3
Cool_cool_death
Новичок
Джуниор
 
Регистрация: 14.04.2010
Сообщений: 4
По умолчанию

IT-man, за совет с массивом огромное спасибо!

А вот с close(f) фокус не катит. Разумеется, я закрываю файл, но это не меняет положения дел
Cool_cool_death вне форума Ответить с цитированием
Старый 14.04.2010, 18:50   #4
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

код записи в файл покажи от assign до close
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 14.04.2010, 19:05   #5
Cool_cool_death
Новичок
Джуниор
 
Регистрация: 14.04.2010
Сообщений: 4
По умолчанию

Код:
    assign(car,'c:\bp\bin\car.dat');
     rewrite(car);
     n:=1;

     repeat
     clrscr;
     writeln(n,'Введите название модели');
     readln(d.model);

     while (length(D.model)=0) or (d.model=' ') do begin
     writeln('Модель не введена.Повторите ввод:');
     readln(d.model); end;

     writeln(n,'Введите предлагаемую стоимость');
     readln(d.price);
     while (d.price<=0) do begin

     writeln('Неверно введена стоимость. Повторите ввод:');
     readln(d.price); end;

	{тут еще целая куча идентичных вводов с проверками}

     textcolor(lightgreen);
     writeln('Продолжить ввод?Нажмите любую клавишу для продолжения,esc для завершения');
     n:=n+1;
     until readkey=#27;

     close(car);
Cool_cool_death вне форума Ответить с цитированием
Старый 14.04.2010, 19:07   #6
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

ну это ты их ввела, а в файл кто писать будет
Код:
assign(car,'c:\bp\bin\car.dat');
     rewrite(car);
     n:=1;

     repeat
     clrscr;
     writeln(n,'Введите название модели');
     readln(d.model);

     while (length(D.model)=0) or (d.model=' ') do begin
     writeln('Модель не введена.Повторите ввод:');
     readln(d.model); end;

     writeln(n,'Введите предлагаемую стоимость');
     readln(d.price);
     while (d.price<=0) do begin

     writeln('Неверно введена стоимость. Повторите ввод:');
     readln(d.price); end;

	{тут еще целая куча идентичных вводов с проверками}

     textcolor(lightgreen);
     writeln('Продолжить ввод?Нажмите любую клавишу для продолжения,esc для завершения');
     n:=n+1;
 write(car,d);
     until readkey=#27;

     close(car);
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»

Последний раз редактировалось IT-man; 14.04.2010 в 19:24.
IT-man вне форума Ответить с цитированием
Старый 14.04.2010, 19:20   #7
Cool_cool_death
Новичок
Джуниор
 
Регистрация: 14.04.2010
Сообщений: 4
По умолчанию

Вот черт! И правда!
Благодарствую за помощь, премного признательна
Cool_cool_death вне форума Ответить с цитированием
Старый 14.04.2010, 21:48   #8
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

У меня похожая ситуация, только условие задания немного другое, в общем имеется файл записей. И мне нужно посчитать общую цену товаров из разных отделов. Просто дело в том что отделы могу повторятся, следовательно нужно изменять цену.
Ну допустим:
Электроника
2200руб
Косметика
1500руб
Овощи
500руб
Электроника
3500руб
Косметика
300руб
Овощи
600 руб
Вот эта запись у меня хранится в одном файле. И вот мне требуется в другой файл переписать общуй стоимость товаров одного отдела. Вот так вот:
Электроника
5700 руб
Косметика
300 руб
овощи
1100 руб.
Просто не могу разобратся, как например искать в файле одинаковые отделы, при условии того что их может быть более двух одинаковых..Как это организовать?
Базиля вне форума Ответить с цитированием
Старый 14.04.2010, 22:37   #9
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

Ну так это вы сделайте массив из структур, в него полностью все что есть вводите, только не забываете разность типов, у вас же так : 2200 руб, вам нужно число, то есть еще эту компоненту записи разбираете как строку и все что не число удаляете, далее переводите строку в число и работаете с этим...Собственно напишите процедурку, которая бы обрабатывала этот массив записей и выдавала результат...
CodeExpert вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированные файлы hidalgo Фриланс 6 16.03.2010 12:20
типизированные файлы felmor Паскаль, Turbo Pascal, PascalABC.NET 0 15.05.2009 09:49
Типизированные файлы. maliyusha Помощь студентам 3 01.03.2009 18:53