Вверх ↑
Этот топик читают: Гость
Ответов: 1173
Рейтинг: 49
#1: 2012-05-31 14:47:13 ЛС | профиль | цитата
Для исправления следует заменить в pas-файле FileSearch'а это:

else _hi_OnEvent(_event_onOtherFiles,Dir + FindData.cFileName);
на это:

else if (_prop_FullName) then _hi_OnEvent(_event_onOtherFiles, Dir + FindData.cFileName)
else _hi_OnEvent(_event_onOtherFiles, FindData.cFileName);
Исправил Netspirit.


Компонент FileSearch выдаёт немного неправильный результат на onOtherFiles: во-первых, параметр FullName не учитывается - всегда выдаётся полное имя (или так и должно быть?), во-вторых, к адресу подставляется лишний слеш, например: C:\...\Desktop\\desktop.ini
Лишний слеш исправляется редактированием 84-ой строки кода компонента:

end else _hi_OnEvent(_event_onOtherFiles,Dir + FindData.cFileName);
Что делать с FN (кроме разделения компонентом FilePart) - не знаю.
Чушь, конечно, но решил сообщить всё-таки
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#2: 2012-05-31 15:20:22 ЛС | профиль | цитата
Ex_ писал(а):
к адресу подставляется лишний слеш,

И чем тебе помешал лишний слэш
Зачем редактировать компонент, когда его можно преобразовать в один, применив Replace
Ex_ писал(а):
или так и должно быть?

Так было задумамо автором. Никто не думал, что кому-то понадобится другое
карма: 22

1
Голосовали:magistar
Ответов: 1173
Рейтинг: 49
#3: 2012-05-31 15:22:25 ЛС | профиль | цитата
nesco писал(а):
Зачем редактировать компонент
Так ведь правильнее, разве нет?
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#4: 2012-05-31 15:23:16 ЛС | профиль | цитата
Ex_ писал(а):
Что делать с FN (кроме разделения компонентом FilePart) - не знаю

Кроме FilePart-a можно еще кучу разных вариантов применить
карма: 22

0
Ответов: 4630
Рейтинг: 749
#5: 2012-05-31 15:23:21 ЛС | профиль | цитата
Определенно, в указанной строке нужно убрать присоединение слеша, так как выше по коду есть
if Dr[Length(Dr)] <> '\' then Dr := Dr + '\';

Возможно, это было изменено позже, а в проблемной строке забыли исправить.
карма: 26

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#6: 2012-05-31 15:24:45 ЛС | профиль | цитата
Ex_ писал(а):
Так ведь правильнее, разве нет?

Нет, не правильно, имена могут начинаться с цифры, вот тогда бардак и начнется
------------ Дoбавленo в 15.24:
Netspirit писал(а):
Определенно, в указанной строке нужно убрать присоединение слеша

Кому он мешает Системе по деревне один слэш или два
карма: 22

0
Ответов: 1173
Рейтинг: 49
#7: 2012-05-31 15:24:53 ЛС | профиль | цитата
nesco писал(а):
Кроме FilePart-a можно еще кучу разных вариантов применить
Я имел ввиду, что не знаю, как исправить это редактированием кода
карма: 0

0
Ответов: 4630
Рейтинг: 749
#8: 2012-05-31 15:28:26 ЛС | профиль | цитата
nesco писал(а):
Системе по деревне один слэш или два

А компоненту FilePartElm? А какой смысл дублирования слеша в конкретно данном месте?
карма: 26

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#9: 2012-05-31 15:30:09 ЛС | профиль | цитата
Ex_ писал(а):
Я имел ввиду, что не знаю, как исправить это редактированием кода

Методы FilePart применять вообще нес стоит. Они с именами такое творят иногда, что мама не горюй
------------ Дoбавленo в 15.30:
Netspirit писал(а):
А компоненту FilePartElm?

Да тоже по боку должно быть
Netspirit писал(а):
А какой смысл дублирования слеша в конкретно данном месте?

Может с цифрами в имени связано, кто ж теперь скажет
карма: 22

0
Ответов: 1173
Рейтинг: 49
#10: 2012-05-31 15:30:29 ЛС | профиль | цитата
nesco писал(а):
имена могут начинаться с цифры, вот тогда бардак и начнется
Что ты имеешь ввиду? Файлы типа 111.txt и 7fdgfdg.ppt нормально обрабатываются - я проверил. А косяки с папками вроде и со слешем наблюдаются.
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#11: 2012-05-31 15:34:49 ЛС | профиль | цитата
Ex_ писал(а):
Файлы типа 111.txt и 7fdgfdg.ppt нормально обрабатываются

Где, в компоненте или дальше
Что будет, если направить полученное имя на чтение файла
карма: 22

0
Ответов: 4630
Рейтинг: 749
#12: 2012-05-31 15:35:07 ЛС | профиль | цитата
nesco, какие цифры?
Есть строка
end else _hi_OnEvent(_event_onOtherFiles,Dir + '\' + FindData.cFileName);
Но в ней Dir уже содержит концевой слеш, который добавляется выше по коду в этой строке:
if Dr[Length(Dr)] <> '\' then Dr := Dr + '\';
Следовательно, это
end else _hi_OnEvent(_event_onOtherFiles,Dir + '\' + FindData.cFileName);
заменяем на это:
end else _hi_OnEvent(_event_onOtherFiles,Dir + FindData.cFileName);
как и предложил Ex_ - и никаких проблем.


карма: 26

0
Ответов: 1173
Рейтинг: 49
#13: 2012-05-31 15:38:39 ЛС | профиль | цитата
Netspirit писал(а):
А компоненту FilePartElm
nesco писал(а):
Да тоже по боку должно быть
Подтверждаю, но смысла в лишнем слеше не вижу.
------------ Дoбавленo в 15.38:
nesco писал(а):
Где, в компоненте или дальше
Ну, компонент нормально ищет и выдаёт нормальное имя.
карма: 0

0
Разработчик
Ответов: 26149
Рейтинг: 2127
#14: 2012-05-31 15:39:11 ЛС | профиль | цитата
Не, пять лет никому не мешало, и нате вам, и че докопались до пустого места
Вы там поищите, может еще чего найдете, так все сразу, оптом, и исправим
карма: 22

0
Ответов: 1173
Рейтинг: 49
#15: 2012-05-31 15:46:35 ЛС | профиль | цитата
nesco писал(а):
Что будет, если направить полученное имя на чтение файла
Немного не понял, что ты имеешь ввиду, но Memo по полученному адресу тхт-шник прочёл, если ты об этом.
------------ Дoбавленo в 15.44:
nesco писал(а):
Вы там поищите, может еще чего найдете, так все сразу, оптом, и исправим
Ещё пара очепяток, пойдёт?
------------ Дoбавленo в 15.45:
Вообще, может создать специальную тему для таких вот мелочей, как вы считаете?
------------ Дoбавленo в 15.46:
nesco писал(а):
до пустого места
Место-то как раз и не пустое, а с лишним слешем
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)