Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Позицию в файле на конкретную строку ?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Интернет
Предыдущая тема :: Следующая тема  
Автор Сообщение
DelpH



Зарегистрирован: 16.04.2002
Сообщения: 67
Откуда: Kazan

СообщениеДобавлено: Пн Янв 20 2003 10:10    Заголовок сообщения: Позицию в файле на конкретную строку ? Ответить с цитатой

Есть тестовый файл (вместо БД) - каждая строка содержит поля, разделенные символом. Длина строк всегда разная. Можно ли как-нить перевести указатель в файле на конретную строку? (врядли конечно...)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Борис
Гость





СообщениеДобавлено: Пн Янв 20 2003 12:14    Заголовок сообщения: Вар. 1. Чтение построчно. Вар. 2. Предварительно проиндексировать. (-) Ответить с цитатой

-
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Пн Янв 20 2003 13:52    Заголовок сообщения: Нельзя. Поэтому во FreeBSD используют двоичные БД Ответить с цитатой

Во FreeBSD данные о юзерах лежат в текстовом файле /etc/master.passwd, но все программы обращаются кдвоичных файлах /etc/pwd.db и /etc/spwd.db, которые получаются компиляцией из /etc/master.passwd. А идея с индексацией здравая - так работают с почтовыми ящиками Waffle и NetscapeNavigator.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Пн Янв 20 2003 14:18    Заголовок сообщения: Re: Нельзя. Поэтому во FreeBSD используют двоичные БД Ответить с цитатой

Если вопрос в доступе к файлам, которые скомпилированы из текстовых (типа alias.db, mailertable.db, passwd.db, termcap.db и т. д.), то для обращения к ним есть готовые библиотечные функции.
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Пн Янв 20 2003 14:54    Заголовок сообщения: Это как раз не вопрос, дело в другом Ответить с цитатой

Есть много схем ранения данных:
- неупорядоченный плотный или неплотный массив;
- упорядоченный плотный или неплотный массив;
- упорядоченный или неупорядоченный однонаправленный или двунаправленный список;
- двоичное дерево;
- более разветвленное дерево;
- hash-database.

К набору данных м.б. применены разные операции:
- поиск элемента по заданному ключу;
- ображения к ранее найденному элементу;
- вставка/удаление элемента;
- поиск похожего элемента;
- вывод списка элементов.

Так вот, в зависимости от количества элементов и от того, какие операции будут применяться наиболе часто, выбирают разные схемы хранения данных... Для хранения юзерских эккаунтов (pwd, spwd) и почтовых баз (aliases, access, mailers, virtusers) во FreeBSD выбрана схема hash-database.
Вернуться к началу
Борис
Гость





СообщениеДобавлено: Пн Янв 20 2003 16:01    Заголовок сообщения: Что-то я запутался Ответить с цитатой

Вопрос бы такой:

>>Есть тестовый файл (вместо БД) - каждая строка содержит поля, разделенные символом. Длина строк всегда разная. Можно ли как-нить перевести указатель в файле на конретную строку? (врядли конечно...)

Ясно, что по причине ненормированности строки подсчитать адрес требуемой строки невозможно, поэтому нужно или посчитывать число симовлов-разделителей (чтение построчно сначала), или определить заранее адреса этих разделителей (преварительная индексация). Вроде это и есть ответ.

Тогда не очень понятны рассуждения про доступ к двоичным файлам-базам данных? Или ты отвечаешь на какой-то подразумеваемый вопрос (который мне не понятен), или ты опережаешь мысль спрашивающего.
Вернуться к началу
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Пн Янв 20 2003 17:11    Заголовок сообщения: Я предлагаю подумать о смене формата БД Ответить с цитатой

Если у человека начинаются проблемы с быстрым доступом к текстовой БД, то надо сменить формат БД - например, сделать срОки одинакокой длины, дописывая их пробелами (ну и еще есть куча вариантов типа нумерации строк в них самИх).
Вернуться к началу
DelpH



Зарегистрирован: 16.04.2002
Сообщения: 67
Откуда: Kazan

СообщениеДобавлено: Вт Янв 21 2003 14:37    Заголовок сообщения: Re: Я предлагаю подумать о смене формата БД Ответить с цитатой

Всем спасибо. Думаю, что сделаю ширину столбцов таблицы постоянными.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Dmitry.Karpov http://prof
Гость





СообщениеДобавлено: Вт Янв 21 2003 19:13    Заголовок сообщения: А я предлагаю подумать о транзакциях Ответить с цитатой

Одно время существовал проект HelpSelf - жестко модерилуемый форму, куда не пропускались В/О без необходимой информации. Так вот, в свое время там намучились с текстовыми файлами, т.к. при одновременном послуплении нескольких запросов система рушила файл с БД. Потом систему перевели на SQL, и эта проблема исчезла. Так вот, подумай - по силам ли тебе написать полностью реентерабельный код или лучше взять MySQL?
А если появится данное, не влезающее в отведенное поле?
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Интернет Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...