| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > Файл записей и работа с ним |
| Автор: Nihatti 16.2.2006, 11:46 |
| помогите, пожалуйста, решить задачу: Создать файл записей, содержащих сведения о товарах, имеющихся на складе (код, наименование, количество, цена). Написать программу, которая позволяет сделать выборку товаров по заданному наименованию, произвести сортировку по увеличению цены заданного товара. Предусмотреть возможность добавления и корректировки записей. с записями и файлами по отдельности вроде разобралась, но эта задача поставила меня в тупик или подскажите, пожалуйста, где можно найти что-нибудь почитать по этой теме? ни в одном учебнике, из тех, которые у меня есть, такие задачи вообще не рассматриваются... |
| Автор: Albinos_x 16.2.2006, 21:33 | ||
| вместе:
А вообще не совсем понятно в чём загвоздка.... опишите поподробней в чём проблема, что не понятно и т.д.... |
| Автор: Nihatti 16.2.2006, 22:57 | ||
на самом деле, было две задачи, на выбор, и я не ту написала, по другой вопросы сформулировать легче: Создать файл записей, содержащих сведения об экспортируемых товарах (наименование товара, страна, импортирующая товар, страны, в которые экспортируется товар, объём поставляемой партии в штуках). Написать программу, которая позволяет выбирать страны с максимальным (минимальным) импортом или экспортом товара. Предусмотреть возможность добавления и корректировки записей. первая проблема в том, что одному товару соответствует несколько стран, а одной стране - несколько товаров, и непонятно каким образом это вообще записывается в файл? обычно ведь или через пробел или в столбик...первый раз встретилась с понятием "файл записей"...или это так должно выглядеть: товар1 страна1 страна2 объем1 товар1 страна1 страна3 объем2 товар2 страна4 страна5 объем3 .................................................... вторая проблема в возможности добавления и корректировки записей...если потом ещё раз открыть файл для записи, то ведь надо снова с ним работать? или я не в том смысле понимаю... и третья проблема...подразумевается, что мы знаем количество..ну допустим видов товара...или нет? ой, простите, вчера уже почти спала и забыла вас поблагодарить.. спасибо |
| Автор: Pakshin A. S. 16.2.2006, 23:30 | ||
Перепимываем файл в новый файл с расширением tmp для наглядности. Очищаяем через rewrite исходный файл. Записываем в исходный файл записи из нашего tmp файл, но если при чтении нам попалась нужная запись (например, совпадение по имени товара), но вместо поулченной из файла записи вставляем в исходный файл новую, тем самым изменив в основном/исходном файле данные. Удаляем tmp файл (нужно точнее уточнить функцию)... Возможно... Лично я не совсем понял вопроса... В общем случае вам бы ен помешало приобрести хотя бы маленькую книжечку (для чайников на худой конец) и почитать в ней про записи и файл, состоящий из записей... |
| Автор: Nihatti 17.2.2006, 10:35 | ||
так, ну с корректировкой вроде стало понятней, спасибо да я бы с удовольствием приобрела, но в большинстве книг до этой темы почему-то не доходят... файлы и записи только по отдельности рассматриваются... пробовала в сети поискать - тоже самое |
| Автор: Albinos_x 17.2.2006, 22:07 | ||
| прошу прощения в примедённом мной коде была опечатка... уже исправил... в этом месте:
|
| Автор: Nihatti 17.2.2006, 22:39 |
| ничего страшного, спасибо за беспокойство нашла наконец-то книжку с примером такой задачи, но там как-то попроще и все равно очень длинная программа... а каким образом всё-таки заполняется файл записей, подскажите, пожалуйста? |
| Автор: Fixin 17.2.2006, 23:10 | ||||||||
| Создается типизированный файл
Потом открываем его для записи
Спрашиваем у пользователя содержимое очередной записи (структуры, ячейки)
Изаписываем эту запись в файл
И так набиваем целую базу Знающие паскаль - поправте, где надо. |
| Автор: Nihatti 17.2.2006, 23:30 | ||
спасибо то есть как это будет записано в файле? в столбике? а то непонятно, каким образом это потом считывать, чтобы сделать выборку? в смысле, команда понятна, Read (F,rec), но каким образом организовыть считывание чего-то одного? |
| Автор: Fixin 17.2.2006, 23:49 |
| Запись записи (прости за тавталогию) в файл происходит в виде передачи туда содержимого памяти, занимаемой записью, т. е. в двоичном виде. Т. о. если запись состоит из числовых полей, то в файл будут записаны их побайтовые представления. Из вышесказанного проистекает нижеследующее: не забивай себе ум всякой ерундой. как хранится. так и хранится. главное - работает |
| Автор: Albinos_x 18.2.2006, 09:08 | ||||||||||||
команда
- создаст новый файл, если файл уже существует, то старый затрётся, если нужно внести изменения нужно применять команду
, далее как обычный типизированный файл: прочитать:
Записать:
если нужно перезаписать определённую запись, то нужно на неё поставить позицию
если дописать, то выставить позицию в конец файла:
|
| Автор: Nihatti 20.2.2006, 15:14 |
| большое спасибо, всем кто мне ответил, только добралась до интернета... задачу я решила, правда, боюсь, что не совсем корректно, но она работает... вот только не знаю, может, добавление и корректировку записей нужно осуществлять через дополнительный файл...но как? |
| Автор: Albinos_x 20.2.2006, 16:09 |
| создаёшь второй файл, допустим будет myBase.temp, допустип если нужно отсортировать, то результат сортировки записываем в него, потом myBase.db удаляем, а у второго файла меняем расширение, то же и с простой корректировкой, копируешь файл в myBase.temp в неём производишь корректировку... всё остальное как с предыдущим вариантом... при таком варианте, появится возможность отмены всех изменений... |
| Автор: Nihatti 20.2.2006, 17:16 | ||
а каким образом менять расширение? может быть, всё-таки подскажете мне, какую-нибудь литературу по этому вопросу? пожалуйста! просто вопросов у меня куча, а по себе знаю, как это раздражает... |
| Автор: Albinos_x 21.2.2006, 08:18 | ||
|
| Автор: Nihatti 21.2.2006, 09:01 |
| ой, простите...я искала на форуме, но не там о-о-о...там даже пхп есть... большое спасибо за помощь |