4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
1 | |
Сохранить список строк в поток30.10.2015, 21:07. Показов 968. Ответов 18
Метки нет (Все метки)
Не знаю как решить такую задачу:
Есть список строк, и к каждой его строке "прицеплена" запись, через свойство Objects. Когда я сохраняю список в поток (SaveToStream), его строки сохраняются в потоке, а вот прицепленные к строкам объекты - нет. Как сделать, чтобы они тоже сохранялись и считывались?
0
|
30.10.2015, 21:07 | |
Ответы с готовыми решениями:
18
Нужно переделать программу, которая создает поток.Родительский и вновь созданный поток должны распечатать десять строк Как Excel документ, в котором 10000 строк, разбить по 10 строк и сохранить каждые 10 строк в отдельный файл Сохранить BMP в поток Сохранить медиа-поток в файл |
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
30.10.2015, 21:11 | 2 |
Ты уже определись что там у тебя прицепелено)
Запись и объект некоторым образом все же различаются .. От этого и решение напрямую зависит ..
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
||||||
31.10.2015, 18:04 [ТС] | 5 | |||||
которые в итоге должны оказаться в свойстве Objects каждой записи списков slWordMaps и slQuestMaps. Сложно я наверно объясняю... Просто дело вот в чём - при загрузке моей программы - когда показанные выше циклы работают, загрузка заметно замедляется, поскольку в этих таблицах около 100000 записей. И я подумал, может быть получится убыстрить загрузку, сохранив заранее оба уже готовых (то есть считанных из БД) списка slWordMaps и slQuestMaps в файловые потоки, а при загрузке - считав их...
0
|
31.10.2015, 18:24 | 7 |
AHTOIIIKA, а вам надо заполнить получить все 100000 строк при загрузке?
предлагаю 1. сделать прогрессбар и загружать по 1000 в цикле и отрисовывать пользователю % 2. использовать OTL - там легко организовать 2 параллельных потока, правда они тоже будут долго работать.
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
31.10.2015, 19:13 [ТС] | 8 |
Прогресс бар у меня есть... Правда он настолько тормозит, что лучше вообще без него...
А заполняю я эти 2 списка при каждой загрузке для того, чтобы получить потом уже скорость работы программы (это поисковая программа) засчёт того, что всё берётся из оперативной памяти. Я пробовал делать через язык SQL, но получил гораздо более медленный результат поиска, поэтому написал всё сам на Дельфи.
0
|
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
31.10.2015, 19:26 | 10 |
Начни с объявления и реализации методов TWordMaps.LoadFromStream/SaveToStream
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
31.10.2015, 19:27 [ТС] | 11 |
Я в том коде, который первоначально привёл, после считывания данных в строковые списки - оба датасета закрываю. Этого недостаточно, они что после этого продолжают висеть в памяти?
БД - локальная Firebird. Проиндексированы все поля, кроме длинных текстовых.
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
31.10.2015, 19:56 [ТС] | 13 |
В смысле?? Датасеты ничего неумеют хранить. Они же ведь только отображают таблицу или запрос из БД...
0
|
31.10.2015, 20:00 | 14 |
ничего не понятно
если бы ТС хранил таблицы в Memtable то было бы понятно - запросы шли бы быстрее TC, а обычный запрос очень долго выполняется? как вы его делаете? выводите все 100000 строк через SELECT и в цикле обрабатываете?
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
31.10.2015, 20:15 [ТС] | 15 |
Какой "обычный запрос"? Можно поконкретнее вопрос ваш?
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
31.10.2015, 20:35 [ТС] | 17 |
это долгая история... я не смогу рассказать, и не относится к моему затруднению, из-за которого я написал на форум.
Скажу только что я очень долго экспериментировал с SQL прежде чем написать всё руками. Но SQL в моём случае Запросы обрабатывались медленнее гораздо, раз в 10, от того что я получил через Delphi.
0
|
qwertehok
|
31.10.2015, 20:43
#18
|
Не по теме: как админ БД я уверен что все можно сделать в SQL если правильно поставить задачу
0
|
4 / 4 / 0
Регистрация: 29.01.2013
Сообщений: 115
|
|
31.10.2015, 21:02 [ТС] | 19 |
ну может я не смог на SQL... Стояла задача поиска в серии книг, где содержится несколько сотен тысяч предложений и используется около 100 000 слов. Поиск как в интернете - то есть вводишь несколько слов, которые должны оказаться в предложении вместе. Программа для каждого слова находит все его имеющиеся падежи, склонения и т.п. и учитывает в поиске всех его "родственников". Количество искомых слов в запросе может таким образом доходить до нескольких сотен.
И это только часть задачи... При поиске нужно было соблюдать такие хитрые условия, что когда я пробовал на форумах спрашивать как написать такой SQL запрос, мне не смогли помочь...
0
|
31.10.2015, 21:02 | |
31.10.2015, 21:02 | |
Помогаю со студенческими работами здесь
19
С# Сохранить класс в поток и прочитать его Сохранить рабочим поток после выключения экрана FB2.5 может ли сохранить поток во внейшний файл? Сохранить, восстановить данные при повороте (Фрагмент, Поток) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |