PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » PureBasic для Linux » TextReplace


TextReplace

Сообщений 1 страница 4 из 4

1

TextReplace

Скачать: yandex
https://i.imgur.com/0OEnaiP.png

Решил переписать утилиту поиска и замены на PureBasic, хотя бы частично (ранее написанную на AutoIt3). Пока только начальные исходники, работает поиск и замена. Потом исходники скорее всего не буду выкладывать, когда уже будет готово.

Почему возник интерес к переписыванию, потому что есть новые идеи, например выполнить в нескольких потоках, один из которых поиск файлов, второй чтение файла и поиск, третий - форматирование результатов вывода, а также возможность компилировать под Linux нативно, скорость быстрее.

Отредактировано AZJIO (09.11.2023 11:59:08)

0

2

Однопоточный доступ к ЖД или твердотельному, так зачем делать поиск и чтение в разных потоках? Шина то доступа - одна.

0

3

Обновления
Добавил поддержку регулярных выражений в поиске и замене
Добавил функционал замены
Добавил чтение ini-файла, но без сохранения (хотя бы настройка для быстрого теста поиска и замены)
Задействовал кнопки: чуствительность к регистру, регвыр, бэкап, замена.

PSY написал(а):

Однопоточный доступ к ЖД или твердотельному, так зачем делать поиск и чтение в разных потоках? Шина то доступа - одна.

я пока не знаю получится ли, есть например поток сбора списка файлов на 15000 файлов работает 3 сек. Но можно попытаться по мере набора начать читать первый (и последующие) файл и запустить в нём поиск, здесь уже будет задействован процессор, а ещё надо сформировать подсвеченный лог результатов поиска, чтобы найденное было красное, а текст до и после был серый, имена файлов синие. То есть если это делать последовательно, сначала получаем список, потом читаем, то в первом случае простаивает процессор, во втором случае частично жёсткий диск, но можно же их напрячь одновременно и получить результат быстрее. Ну и второе преимущество - возможность сделать отмену если процесс длится более минуты, а за это время пользователь понял, что он задал маску поиска не верно из-за чего в результаты попало слишком много файлов или слишком много вхождений и можно отменить и посмотреть хотя бы часть найденного. А если последовательно, то будете вынуждены получить сначала все файлы, но в моей попытке задействовать поток результаты первого файла будут получены в первую секунду. Мечтать не вредно, у меня уже вычисление размера данных перед обработкой требует получения всего списка файлов, так что как я буду разруливать это не представляю, может придётся отказаться, ведь у меня в этой же утилите написанной на AutoIt3 есть флаги запретов устанавливаемые пользователем, например если размер файла больше 188 Мб - хотите продолжить, список файлов более 20000 хотите продолжить и т.д.

0

4

Линуксовую пока разрабатываю, файл TextReplaceScintillaArch.
1. Добавил детальный поиск. Пока не понятно делать ли детали в отдельном окне, а в главном только список.
2. Стоит ли использовать Scintilla, всё таки сторонняя библиотека и сразу 2 Мб добавляет к файлу, при размере программы 200-500 кб.
3. Добавил сохранение раскрывающихся список.
4. Конкретно для линукс сделал распознавание кодировки с помощью pbi от Demivec и преобразование если ANSI. То есть если открывается не поддерживаемый как 1251 ANSI, то если это UTF8, то флаг чтобы при сохранении также сохранить как UTF8 без BOM, а если настоящий ANSI, то преобразуется в 1251, а после замены опять преобразуется в 1252 в диапазоне 0-255. Проверил на HTML-файлах, как в кодировке 1251, так и UTF8, ничего не ломается, русский текст заменяется.

0


Вы здесь » PureBasic - форум » PureBasic для Linux » TextReplace