Пример поиска файлов, скачать
тут на Linux, но и на Windows должно работать, не проверял ещё.
Отредактировано AZJIO (10.03.2023 14:52:46)
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » PureBasic для Windows » Поиск файлов
Пример поиска файлов, скачать
тут на Linux, но и на Windows должно работать, не проверял ещё.
Отредактировано AZJIO (10.03.2023 14:52:46)
Предыдущая версия работает быстро, так как там используется CopyMemoryString. В расширенной версии очень сложно определить сколько выделить памяти. Например "Полный путь" надо взять максимально возможную длину пути. Для ANSI в Windows вроде 260 символов, для юникода вроде 32000. Допустим это можно вычислить как в предыдущей версии, так как список путей вычисляется первым, но как вычислить имя файла, то есть фактически будет двойной запрос функции сначала GetFilePart для вычисления, а потом для добавления. Работает жутко медленно, если список файлов предыдущей версии получен ха 170мсек, то расширенной 94000мсек, в 553 раза дольше. Даты имеют ширину стандартную их можно получить ширина*количество, размеры тоже можно задать с запасом. Хотя бы вычислить приблизительную величину и задать с тройным запасом.
Может проверять позицию указателя, чтобы довыделить. Допустим выделить мегабайт, не хватило, ещё выделить мегабайт. Сейчас на 40 000 файлов данные на 2,4Мб. В принципе по 3 Мб можно выделять.
Сделал итоговую функцию поиска файлов, скелет. Добавил параметр грубины вложенности каталогов для поиска. Если указать 0, то файлы только текущей папки, в корне.
Отредактировано AZJIO (27.02.2021 02:25:57)
Отредактировано AZJIO (23.03.2021 22:11:56)
Ещё подправил код функции поиска.
Добавлена имитация wildcard, а нативный wildcard перемещён на флаг 4.
Добавлена коррекция маски, если её вводит пользователь в поле ввода и допускает ошибки.
Хотя посмотрел функции выше, я уже делал коррекцию маски. Но сейчас я уже использовал #PB_Any в регулярных выражениях, а также у меня не было удаление дубликатов в маске, теперь есть.
Также имитацию wildcard на регулярных выражениях я писал заново, забыв что уже тут сделал. Но зато свежий взгляд не оборачиваясь на старое, то есть я сделал флаги от 0 до 4, которые используют режимы для маски.
Поиск дубликатов файлов | PureBasic для Windows | 01.07.2022 |
Как заменить текст в файле? | Вопросы по PureBasic | 19.02.2021 |
Программа поиска и выбора констант API | OffTop | 24.04.2023 |
Просмотрщик CHM-файлов. | PureBasic для Linux | 16.01.2025 |
Обработка текстового файла | Вопросы по PureBasic | 22.08.2024 |
Вы здесь » PureBasic - форум » PureBasic для Windows » Поиск файлов