powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
25 сообщений из 311, страница 2 из 13
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758901
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerКроме того, судя по описанию, работа не разовая, а очень даже регулярная и с суммарно приличными объёмами данных.

Да, программа не для разовой работы. И объемы приличные.
Щас вот вроде разобрался с динамическим массивом, в который пишутся данные из файла.

Теперь буду читать как хотя бы быстро проанализировать массив на одинаковые элементы и просто выдать инфу о том что они есть или их нет.

Буду искать алгоритмы, ибо двойным циклом перебрать все элементы массива - это тупо (хотя в универе только это и делал).
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758910
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreimaksSergSuperFreimaks,

СУБД с данными работает, а не с файлами и записями...
Ну это понятно... я вроде и не говорил, что я субд хочу целый файл запихать. Я хотел туда писать данные из файла.ну раз понятно - зачем Вы про всякие файлы, циклы пишите?
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758915
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Baskakovя боюсь, что если не хватит объема оперативки - своп тоже что-то запишет на диск
А Вы не бойтесь :) Ещё раз: программа представляет собой трубу ввод-вывод. Она прочитала кусок входного файла, проверила на дубли, скинула в выходной - и этот кусок ей больше не нужен, она может писать в это место другие данные. Если средняя длина записи в данном случае 30 байт, а ключ дедубликации, допустим, 6 байт - значит своп в самом худшем случае наступит ку-у-уда как позже.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758927
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreimaksТеперь буду читать как хотя бы быстро проанализировать массив на одинаковые элементы и просто выдать инфу о том что они есть или их нет.
Вам не нужно этого делать. Вам нужно сделать один проход по массиву, заполняя по пути вспомогательную структуру ключами записей. Соответственно логика очень простая:

Берём очередную запись
Определяем её ключ
Если он уже есть в множестве ключей - игнорируем
Если его нет - добавляем и скидываем запись в выходной файл


Ключевой вопрос здесь - эффективно осуществлять операцию "проверили - добавили". В общем случае для этого наилучшим образом подходит структура данных hash set. Хорошие реализации хэшей для дельфи - погуглите, ибо те, что стандартно в VCL, никуда не годятся.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758933
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerVladimir Baskakovя боюсь, что если не хватит объема оперативки - своп тоже что-то запишет на диск
А Вы не бойтесь :) Ещё раз: программа представляет собой трубу ввод-вывод. Она прочитала кусок входного файла, проверила на дубли, скинула в выходной - и этот кусок ей больше не нужен, она может писать в это место другие данные. Если средняя длина записи в данном случае 30 байт, а ключ дедубликации, допустим, 6 байт - значит своп в самом худшем случае наступит ку-у-уда как позже.
Я извиняюсь за тупой вопрос, но мне вот что не понятно - т.е. можно проводить поиск дубликатов (даже не 100%-ых, а только по нескольким полям записи) не загружая весь файл???
Можете дать ссылочку на то как это все хотя бы примерно выглядит????

P.S. Длина записи 20 байт (9 полей) + 4 байта на дополнительное поле времени+ 4 байта на поле цвета(просто время и цвет являются необязательными полями и могут как присутствовать так и нет). B 48 байт на заголовок файла. В терминологии могу путаться ибо не спец.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758940
Freimaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerFreimaksТеперь буду читать как хотя бы быстро проанализировать массив на одинаковые элементы и просто выдать инфу о том что они есть или их нет.
Вам не нужно этого делать. Вам нужно сделать один проход по массиву, заполняя по пути вспомогательную структуру ключами записей. Соответственно логика очень простая:

Берём очередную запись
Определяем её ключ
Если он уже есть в множестве ключей - игнорируем
Если его нет - добавляем и скидываем запись в выходной файл


Ключевой вопрос здесь - эффективно осуществлять операцию "проверили - добавили". В общем случае для этого наилучшим образом подходит структура данных hash set. Хорошие реализации хэшей для дельфи - погуглите, ибо те, что стандартно в VCL, никуда не годятся.

Логика работы очень понятна!! Буду искать!!! Спасибо за то, что направили на путь истинный :-)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37758955
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Я извиняюсь за тупой вопрос, но мне вот что не понятно - т.е. можно проводить
> поиск дубликатов (даже не 100%-ых, а только по нескольким полям записи) не
> загружая весь файл???

Один раз надо будет файл прочитать.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759034
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ общем случае для этого наилучшим образом подходит структура данных hash set.

Не подходит, поскольку совпадение хэшей не означает совпадения данных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759056
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovsoftwarerВ общем случае для этого наилучшим образом подходит структура данных hash set.

Не подходит, поскольку совпадение хэшей не означает совпадения данных.

Дим, объясняю простым русским языком: тебе стоило бы слазить в гугль, прочитать о чём идёт речь и не позориться так откровенно, ориентируясь исключительно по тому, что произносимое слово звучит похоже на то, что он когда-то в другом контексте вроде как слышал. Твои выступления в этой теме звучат очень похоже на то, как если бы ты спутал hash с cash и пытался выяснить, при чём тут деньги и почему нельзя использовать бесплатный ФБ.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759071
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreimaksЯ извиняюсь за тупой вопрос, но мне вот что не понятно - т.е. можно проводить поиск дубликатов (даже не 100%-ых, а только по нескольким полям записи) не загружая весь файл???
Можно делать это, не держа весь файл единомоментно в памяти, а читая его кусками. Что даёт возможность эффективно работать с файлами, не влезающими в доступную оперативку.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759170
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerтебе стоило бы слазить в гугль, прочитать о чём идёт речь и не позориться так откровенно,
ориентируясь исключительно по тому, что произносимое слово звучит похоже на то, что он
когда-то в другом контексте вроде как слышал.
Ну слазил я в гугль. Ничего нового для себя не нашёл. Вопреки утверждениям о "трубе" выше,
данные всё-таки накапливаются в памяти и располагаются в массиве по порядку возрастания
хэшей. Если "упорядоченное по возрастанию расположение" нынче не считается сортировкой - я
пас, поскольку старомодно его таковой считаю.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759176
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/18/2012 02:52 PM, Dimitry Sibiryakov wrote:

> Не подходит, поскольку совпадение хэшей не означает совпадения данных.

Ты прикалываешься ? Не может быть, чтобы ты был бы таким глупым и неучем.



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759182
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Ну слазил я в гугль. Ничего нового для себя не нашёл. Вопреки утверждениям о
> "трубе" выше,

Ну да, те же буквы ... A...Z, а...я ...

> данные всё-таки накапливаются в памяти и располагаются в массиве по порядку
> возрастания
> хэшей. Если "упорядоченное по возрастанию расположение" нынче не считается
> сортировкой - я
> пас, поскольку старомодно его таковой считаю.

Упорядочение хэшей не означает упорядочение записей по ключу, даже если оно
есть. Возрастающие ключи могут давать убывающие хэши, или перемежающиеся
любым образом.

Короче, не лазь больше в интернет -- я тебе всё скажу:
Если B+ tree или map, или красно-чёрное дерево -- это означает, что данные
отсортированы по ключу. Если хэш-таблица -- это означает, что данные по ключу не
отсортированы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759196
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivУпорядочение хэшей не означает упорядочение записей по ключу, даже если оно
есть. Возрастающие ключи могут давать убывающие хэши, или перемежающиеся
любым образом.
А дальше? Что же ты не продолжаешь эту мысль: "упорядочение по ключу не означает
упорядочивание данных, поскольку возрастающие данные могут давать убывающие ключи". Что же
нам теперь, case-insensitive сортировку не считать сортировкой прикажешь?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759301
Vladimir Baskakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerОна прочитала кусок входного файла, проверила на дубли
а если дубль первой записи в хвосте?

допустим запись из 10 полей.
и другая запись - тоже из 10.
когда надо свистеть о совпадении - когда значение некоторого поле 1-ой записи совпало со значением 2-ой? или когда вообще все совпало?

Если совпадение - это когда комбинация первых пяти полей одного равна комбинации пяти полей другого - ага - в мясорубку их, и циферки - в кучку. Была такая циферка в кучке - надо проверять детально. Да? трубообразно. а вот если совпадение - это совпадение по 2-ум произвольным полям? все таки иметь движок, который делает груп бай - хэвинг коунт звездочка больше 1....

(может я туплю. это ничего, это бывает)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759338
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivТы прикалываешься ?
Да нет. Просто изо всех сил старается сделать вид, что хоть в чём-то хоть на сколько-то прав. Некоторым людям с ранимой самооценкой и без фундамента достижений это очень важно. Не было бы этого - сказал бы, например, что последовательное чтение файла есть сортировка, поскольку читает по порядку записей в файле.

Vladimir Baskakovа если дубль первой записи в хвосте?
То нам как правило не нужна вся первая запись для того, чтобы свистнуть о совпадении.

Vladimir BaskakovБыла такая циферка в кучке - надо проверять детально.
Незачем в данном случае.

Vladimir Baskakovа вот если совпадение - это совпадение по 2-ум произвольным полям?
Не вижу смысла фантазировать. Автору всё равно лучше знать.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759358
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerнам как правило не нужна вся первая запись для того, чтобы свистнуть о совпадении.

С этого места подробнее, пожалуйста. В каких случаях для сигнализации полного
совпадения вся запись не нужна?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759385
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerсказал бы, например, что последовательное чтение файла есть сортировка, поскольку читает
по порядку записей в файле.

Нет, я бы сказал, что записи в файле хранятся упорядоченными по номеру записи. А ячейки
ОЗУ - упорядочены по адресу. Есть возражения?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759437
Dimitry SibiryakovMasterZivУпорядочение хэшей не означает упорядочение записей по ключу, даже если оно
есть. Возрастающие ключи могут давать убывающие хэши, или перемежающиеся
любым образом.
А дальше? Что же ты не продолжаешь эту мысль: "упорядочение по ключу не означает
упорядочивание данных, поскольку возрастающие данные могут давать убывающие ключи". Что же
нам теперь, case-insensitive сортировку не считать сортировкой прикажешь?..

Ну в таком случае данные вообще везде всегда отсортированы, ведь данные располагаются в порядке адресации которая всегда идет по возрастанию, что в RAM, что в HDD :)
И любая IO-операция есть сортировка :)

Но адресацией нельзя пользоваться, т.к. совпадение адресов не означает совпадение данных.

А хэш-индексы существуют специально для того, чтобы хранить данные упорядоченными и обращаться к ним по диапазону range scan :)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759456
hash match group by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvhash match group byА как это происходит и в чем преимущество данной сортировки в двух словах расскажите.
программист должен изучить все виды сортировок, и потом их применять по месту, как из "словаря". Например, я помню, что есть много разных сортировок, и чем они отличаются, но я не помню, как эти сортировки реализованы (код). Но мне это нафиг не надо - открыл любой справочник по программированию, и посмотрел.
Ну хотя бы плюсы и минусы той или иной сортировки нужно помнить, чтобы применять их к месту?
Или киньте линк на описание хэш-сортировки :)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759476
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
любая операция - сортировкаадресацией нельзя пользоваться, т.к. совпадение адресов не означает совпадение данных.

Да? А хэш-таблицы-то и не знают...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759489
Dimitry Sibiryakovлюбая операция - сортировкаадресацией нельзя пользоваться, т.к. совпадение адресов не означает совпадение данных.

Да? А хэш-таблицы-то и не знают...

Не подходит, поскольку совпадение хэшей не означает совпадения данных.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759540
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А дальше? Что же ты не продолжаешь эту мысль: "упорядочение по ключу не означает
> упорядочивание данных, поскольку возрастающие данные могут давать убывающие
> ключи".

Я писал:
Возрастающие ключи могут давать убывающие хэши, или перемежающиеся
любым образом.

Что же
> нам теперь, case-insensitive сортировку не считать сортировкой прикажешь?..

Дальше пошла клиника -- иди, читай интернет, и попытайся вникнуть в СМЫСЛ букв.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759604
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovsoftwarerнам как правило не нужна вся первая запись для того, чтобы свистнуть о совпадении.

С этого места подробнее, пожалуйста. В каких случаях для сигнализации полного
совпадения вся запись не нужна?

В случае любого человека, не пытающегося тупо и нагло передёргивать и не считающего за западло прочитать постановку задачи в первом посте топика.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37759643
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЯ писал:
Возрастающие ключи могут давать убывающие хэши, или перемежающиеся любым образом.

И этим ты пытаешься доказать мысль, что упорядочивание хэшей не является сортировкой?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 311, страница 2 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]