View previous topic :: View next topic |
Author |
Message |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Mon Mar 05, 2007 19:17 Post subject: [BUG] Ошибки при поиске символов с RegExp |
|
|
Чтобы воспроизвести косяк, откройте в листере любой бинарный файл (например любой MP3 файл). В диалоге поиска введите в строку поиска \x00 (поиск нулевого символа) и поставьте галочку Регулярные выражения. На удивление Тотал ничего не находит (даже в файле, состоящем только из одних нулевых символов). Причем сообщения, что, мол, ниче не найдено, Тотал при этом не показывает(!).
Если при тех же условиях попытаться искать символ \x01, то теперь Тотал наконец-то начнет находить то что мы ему заказали, но при этом еще находит и ... нулевой символ .
Сюрпризы ожидают нас и при поиске символов \x0A или \x0D. В малом файле, скорее всего, ничего не будет найдено. По логике оно так и должно быть, если верить в то, что в Тотале поиск с RegExp производится только в пределах одной строки. Но вот что странно, при поиске в больших файлах символы начинают-таки находиться, но это абсолютно произвольные символы
Сказать, что поиск \xnn не работает, я конечно не могу. По крайней мере с другими, проверенными мною ASCII-кодами проблем пока не заметил. Может и все мною описанное выше тоже является нормальным поведением, но оно, как минимум, нуждается в некоторых разъяснениях. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Mon Mar 05, 2007 19:56 Post subject: |
|
|
Некорректный поиск нулевого символа - известный баг. К сожалению, проблема пока из разряда нерешаемых, т.к. Тотал использует для хранения данных Сишные строки, в которых нулевой символ - признак конца строки, и потому вынужден заменять внутренние нулевые символы чем-нибудь другим (вполне возможно, именно символом \x01, точно не помню). _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Mon Mar 05, 2007 20:24 Post subject: |
|
|
Что-то пока не убеждает это меня. Как же тогда ведется (успешно!) поиск 00 с опцией Hex-код?
А что по поводу символов \x0A , \x0D?
Я так считаю, что нужно тогда полностью исключать поиск нулевого сивола (и, наверное, символов 0x0D и 0x0A) через RegExp из заявленных возможностей программы и обязательно документировать это. Иначе получается весьма неоднозначный поиск. Тем более неприятно, что все эти дела распространяются и на поиск файлов с учетом их содержимого. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Mon Mar 05, 2007 20:41 Post subject: |
|
|
Volniy wrote: | Что-то пока не убеждает это меня. |
За что купил, за то и продаю.
Volniy wrote: | Как же тогда ведется (успешно!) поиск 00 с опцией Hex-код? |
Понятия не имею. Видимо, в этом месте Гислеру удалось чего-то подхачить.
Volniy wrote: | А что по поводу символов \x0A , \x0D? |
Читаем справку:
Quote: | ... программа поддерживает только поиск в пределах одной строки. |
Volniy wrote: | Я так считаю, что нужно тогда полностью исключать поиск нулевого сивола |
Может быть. Забрось Гислеру. Если по-хорошему, так надо вообще прикрутить нормальную библиотеку помощнее... Что, впрочем, уже предлагали. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Lev

Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Mon Mar 05, 2007 20:54 Post subject: |
|
|
Небольшое отклонение от темы.
У меня при попытке поиска текста "\n" при отключенных регекспах ищется конец строки. Это фича или баг? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Mon Mar 05, 2007 21:47 Post subject: |
|
|
CaptainFlint wrote: | Читаем справку:
Quote: | ... программа поддерживает только поиск в пределах одной строки. |
|
Не верь глазам своим, однако. Я же говорю, что все-таки находит что-то Тотал при поиске \x0A , \x0D (чушь всякую), а ведь не должОн.
Alextp wrote: | Это фича. Еще ищется \t \0 и что-то еще (оно в справке есть). |
Да нет там ничего, кроме \n, \t и \\. \0 - не работает, проверено. |
|
Back to top |
|
 |
CaptainFlint

Joined: 14 Dec 2004 Posts: 6193 Location: Москва
|
(Separately) Posted: Mon Mar 05, 2007 22:02 Post subject: |
|
|
Volniy wrote: | Я же говорю, что все-таки находит что-то Тотал при поиске \x0A , \x0D (чушь всякую), а ведь не должОн. |
Значит, недоделка какая-нибудь. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
 |
Alextp

Joined: 06 Feb 2005 Posts: 4957
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|