Category Archives: Алгоритмы

Delphi. Алгоритмы. DFS. Поиск в глубину рекурсивно

Своими словами. Берем первую вершину, смотрим, нет ли у нее инцидентных ребер (прямых потомков), если есть помечаем, повторяем процедуру для найденной вершины, и так до конца глубины. Возвращаемся, идем к соседней вершине, и так далее. interface

init visited array … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Алгоритмы. DFS. Поиск в глубину рекурсивно

Delphi. Алгоритмы. BFS – обход графа в ширину

Теория хорошо описана на Вики.  Суть в этой гифке ниже.   Моя скромная реализация для представления графа в виде матрицы смежности. Ноль в матрице смежности означает отсутствие ребра между вершинами. Единица – наличие.  В основе обхода в ширину – такая … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Алгоритмы. BFS – обход графа в ширину

Delphi.DBTreeView. Алгоритм динамического обновления узлов

Пусть есть TreeView, связанное с базой данных, например MySQL. Необходимо сделать так, чтобы данные загружались только при первоначальном заполнении (idParent=-1) либо при раскрытии узла (OnExpanding). Данный алгоритм хорош тем, что не грузит сразу все данные. И если, скажем, дерево большое, … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi.DBTreeView. Алгоритм динамического обновления узлов

Delphi. DBTreeView. Самый эффективный алгоритм удаления узлов из дерева, связанного с базой данных

-пусть есть TreeView, соединенный с базой, скажем MySQL -пусть мы хотим удалить выделенный узел TreeView из базы данных и из дерева Алгоритм (пока что №1 в моем рейтинге) -собрать ID всех детей (рекурсивно), хранящиеся по указателю каждого узла дерева SomeNode.Data … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. DBTreeView. Самый эффективный алгоритм удаления узлов из дерева, связанного с базой данных

Delphi. Алгоритмы. Галерея своими руками или как выложить плитками фрэйм

Давно хотел записать это, так как часто пригождается, думаю транслировать на другие языки не составит труда. Итак, вот что у нас получится… Я пока не стал выкладывать никакие картинки, просто хочу здесь описать саму логику алгоритма. Сам алгоритм я взял … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Алгоритмы. Галерея своими руками или как выложить плитками фрэйм

Delphi. Алгоритмы. Создание уникального имени через добавление номера в конце в скобках. Например SomeFile(1), SomeFile(2) и др.

Итак, пусть у нас в некоторой директории находится файл SomeFile, сделаем так, чтобы при добавлении следующего файла с именем SomeFile, в директории оказался файл SomeFile(1), SomeFile(2), SomeFile(3). При отсутствии этого файла в директорию копируется просто файл. Данная задача возникла в … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Алгоритмы. Создание уникального имени через добавление номера в конце в скобках. Например SomeFile(1), SomeFile(2) и др.

Delphi. Как отсортировать TStringList и сохранить соответствие с несколькими другими TStringList?

Данный пост является развитием предыдущего. Будем сортировать один TStringList -другие же приводить в соответствие с переставленными элементами.

Исходные данные у меня точно такие же. Не буду переписывать часть поста сюда.Изменился только алгоритм сортировки, так как теперь в соответствие нужно … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Как отсортировать TStringList и сохранить соответствие с несколькими другими TStringList?

Delphi. Сортировка TStringList с приведением в соответствие другого TStringList

Что делаем? Есть у нас некоторый TStringList, скажем SLToSort:TStringlist. Нужно его отсортировать – задача элементарная, пишем компараторы для наших данных, включаем CustomSort и всё готово. А что делать, если кроме SLToSort есть просто SomeSL:TStringlist и после сортировки SLToSort – нужно привести его … Continue reading

Posted in Delphi, Алгоритмы | 2 Comments

Delphi. Делаем простой инкрементальный поиск

Пусть на ListView выведены данные. Сделаем простой инкрементальный поиск… Данные будем брать из ListView. Алгоритм поиска самый простой – перебор, при желании и обилия большого числа данных его легко можно заменить, скажем на бинарный поиск. Сначала результаты поиска сохраним в отдельном … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Делаем простой инкрементальный поиск

Delphi. Алгоритмы. Как заменить имя файла на уникальное ?

Скажем, у нас есть имя файла в формате Filename.jpg в переменной FileName. Далее код на уровне идеи… Вариант 1 через GUID

Вот пример такого изменения. Сохраняем часть старого имени для читабельности и добавляем GUID

Вариант 2 через Random … Continue reading

Posted in Delphi, Алгоритмы | Comments Off on Delphi. Алгоритмы. Как заменить имя файла на уникальное ?