![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| An123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
Разработать сценарий для поддержки базы данных входящих документов
Документ представлен некоторым текстовым файлом. База данных - это отдельный каталог, в котором размещаются документы. Требуется -добавить документ в базу -просмотреть список документов -отобразить содержимое документов -получить объём в байтах документа Работа с системой с помощью меню и задании параметров, необходимых для выполнения соотв. действия. После выполнения действия пользователю опять предлагается выыбрать один из пунктов меню Завершение работы осуществляется посредством выбора Выход Bash я начал изучать недавно(точнее вчера) и получилось что то вроде этого - некоторые пункты совсем не реализованы:
|
|||
|
||||
| spin2 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 15.12.2005 Где: Москва-Одесса Репутация: 5 Всего: 31 |
А в чем вопрос?
-------------------- |
|||
|
||||
| An123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
Вопрос в том как организовать это -отобразить содержимое документов
-получить объём в байтах документа |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 26 Всего: 97 |
cat somefilename Это сложнее. Что именно нужно: сколько занимает вообще, или сколько занимает на диске? Если на диске, то можно использовать du. Тогда нужно либо парсить вывод, полученный с помощью "-h", либо думать о размере блока (без "-h" выдаётся размер в блоках). Если объём данных, то "wc -c somefile". |
|||
|
||||
| spin2 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 15.12.2005 Где: Москва-Одесса Репутация: 5 Всего: 31 |
powerfox, для файла и ls -l и потом cut вполне хватит, по-моему.
-------------------- |
|||
|
||||
| An123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
Необходимо получить объём (в байтах) заданного документа
А про cat somefilename можно поподробнее |
|||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: нет Всего: 10 |
Подробнее в
|
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 26 Всего: 97 |
Выше я написал, как это сделать ;) Конечно. |
|||
|
||||
| spin2 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 15.12.2005 Где: Москва-Одесса Репутация: 5 Всего: 31 |
An123, приведенный код тобой написан? Там же уже есть строчка
-------------------- |
|||
|
||||
| An123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
А как можно добавить документ в базу ?
|
|||
|
||||
| BlackRu |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 431 Регистрация: 14.9.2009 Репутация: 2 Всего: 4 |
Что-то я не могу понять, почему после выполнения первой функции мы в конце остаемся в стартовой директории. Т.е. пользовательского перехода не происходит.
Или нужно перекурить read? Извиняюсь за оффтоп. Это сообщение отредактировал(а) BlackRu - 31.10.2009, 13:10 -------------------- Удалена администрацией форума |
|||
|
||||
| BlackRu |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 431 Регистрация: 14.9.2009 Репутация: 2 Всего: 4 |
Оно? Полный Брейк Данц в общем. Это сообщение отредактировал(а) BlackRu - 31.10.2009, 14:05 -------------------- Удалена администрацией форума |
|||
|
||||
| An123 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
BlackRu, спасибо большое
Только я не очень понял как происходит получение объёма в байтах Если не сложно, ты не мог бы этот кусок пояснить :
|
|||
|
||||
| BlackRu |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 431 Регистрация: 14.9.2009 Репутация: 2 Всего: 4 |
Это твой кусок кода. Я не очень понимаю, почему так сделано. И кажется, он некорректно работает, каждый раз перезаписывая то ли, счетчик, то ли значение true в файл, у меня так во всяком случае. Мне кажется стоит выкинуть цикл, т.е.
Если нужно сделать проверку ввода, то лучше покурить насчет аналога file exist - такая фича есть в php, вероятно есть и в bash... что делает -e? - этот ключ/оператор/хз? я не понял, поясни.
Эта функция, наскоро написанная, выводит информация о файле, там права на запись, время, размер и т.д. Если тебе надо отдельно вывести только байты, это можно сделать посредство конвеера, например использовать awk и grep, если они есть в системе, хотя есть команда size. Вариантов, много. Но есть самый простой способ - использовать du
Или так.
Это сообщение отредактировал(а) BlackRu - 31.10.2009, 17:34 -------------------- Удалена администрацией форума |
||||||||||
|
|||||||||||
| An123 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 17.10.2009 Репутация: нет Всего: нет |
Вот эту часть позаимствовал - так что не исключено есть косяки А вообще как правило требуется сделать проверку ввода, если в задании об этом ничего не сказано? Вот эта строка как работает
5 - это что? |
||||
|
|||||
![]()
|
| Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |