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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2013, 12:38   #1
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию Большой текстовый файл

Всем привет! есть бд в обычном текстовом файле размером 20мб. Размер большой и работать с ним все сложнее и сложнее по мере увеличения записей. Работаю с ним через StringList, поиск осуществляю перебирая все записи, потому как функция Pos не подходит, да и при поиске иногда нужно вывести не одну запись а несколько. Работают с этой бд потоки через крит секции. Пробовал сделать БД в clientdataset но скорость работы падает, такой же результат дал и Access. ClientDataset и Access создавал динамически. Подскажите пожалуйста на какую бд мне обратить внимания, или как лучше производить поиск по StringList. Заранее спасибо.
D_E_N вне форума Ответить с цитированием
Старый 19.11.2013, 13:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

FireBird возьми.
Цитата:
как лучше производить поиск по StringList.
Ну... По идее я бы разделил этот 20мтрвй список на несколько фалов, которые будут данные группировать по некому признаку, но это все же хуже чем использовать СУБД.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2013, 13:21   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Работай через Memory Mapped Files.
Человек_Борща вне форума Ответить с цитированием
Старый 19.11.2013, 13:24   #4
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию

Спасибо. А не будет такого же эффекта как через Access?
Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Работай через Memory Mapped Files.
Спасибо. а как с ними работать и как хранить? Процессор будет сильно гонять?
D_E_N вне форума Ответить с цитированием
Старый 19.11.2013, 13:27   #5
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Цитата:
Сообщение от D_E_N Посмотреть сообщение
А не будет такого же эффекта как через Access?
Какого эффекта? Аксес, знаете ли, не школьник написал, а целая команда специалистов.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Старый 19.11.2013, 13:31   #6
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию

Цитата:
Сообщение от alextrof94 Посмотреть сообщение
Какого эффекта? Аксес, знаете ли, не школьник написал, а целая команда специалистов.
Замедлять получение данных. я через него пробовал он как то вяло работал. просто с бд работают около 5 потоков через секции. может секции ставить только когда добаляю в бд запись и когда делаю запрос на выборку не стоит?
D_E_N вне форума Ответить с цитированием
Старый 19.11.2013, 13:34   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
такой же результат дал и Access. ClientDataset и Access создавал динамически.
етить колотить, даже нет слов

Цитата:
просто с бд работают около 5 потоков через секции
что не пост то перл, ну и на шо тут они эти секции делают?

Последний раз редактировалось Stilet; 19.11.2013 в 15:24.
eval вне форума Ответить с цитированием
Старый 19.11.2013, 13:35   #8
D_E_N
Форумчанин
 
Регистрация: 04.05.2009
Сообщений: 149
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
етить колотить, даже нет слов
а как с ним работать из потоков?))
D_E_N вне форума Ответить с цитированием
Старый 19.11.2013, 13:38   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Спасибо. а как с ними работать и как хранить? Процессор будет сильно гонять?
Не будет вообще, все дисковые операции лежат на Windows.
Прочитайте про технологию.
Человек_Борща вне форума Ответить с цитированием
Старый 19.11.2013, 13:40   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Даже в StringList можно пользоваться функцией Pos, если искать в StringList.Text без всякого перебора. И PosEx если нужно найти более одного вхождения. В принципе это будет быстрей, чем в любой базе, поскольку тот же LIKE все равно будет работать полным перебором, если поиск в виде '%тра-ля-ля' не зависимо от наличия индексов
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
открыть большой графический файл побитно FoggySpurs Общие вопросы по программированию, компьютерный форум 71 04.06.2012 13:34
Не заливается на ФТП большой файл ramzes777 Работа с сетью в Delphi 3 26.10.2011 10:19
Разбить большой файл на более мелкие Sat_Kelman Microsoft Office Excel 4 18.03.2011 13:06
отдавать большой файл с фтп TaTT DoGG PHP 5 03.07.2009 10:34
Текстовый файл в текстовый массив Kimimaru Общие вопросы C/C++ 1 02.12.2007 11:55