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

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

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

init visited array … Continue reading

Posted in Delphi, Алгоритмы | Leave a comment

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

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

Posted in Delphi, Алгоритмы | Leave a comment

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

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

Posted in Delphi, Алгоритмы | Leave a comment

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

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

Posted in Delphi, Алгоритмы | Leave a comment

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

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

Posted in Delphi, Алгоритмы | Leave a comment

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

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

Posted in Delphi, Алгоритмы | Leave a comment

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

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

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

Posted in Delphi, Алгоритмы | Leave a comment

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, Алгоритмы | Leave a comment

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

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

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

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

Posted in Delphi, Алгоритмы | Leave a comment