Как применить фильтр к полям даты в UltraEdit - PullRequest
1 голос
/ 05 мая 2019

Я пытаюсь использовать опцию фильтра в UltraEdit. У меня есть простой файл CSV. Имеет 3 столбца. В последнем столбце есть даты. Мне нужно применить фильтр, чтобы я видел только те строки с датами старше, скажем, 05/01/2019.

24.59,000000024.13,06/01/2019
18.45,000000000.00,07/01/2019
18.45,000000018.36,07/01/2019
94.08,000000000.00,02/01/2019
19.83,000000000.00,02/01/2019
77.35,000000000.00,02/01/2019
51.22,000000000.00,02/01/2019
14.02,000000000.00,02/01/2019
70.21,000000000.00,02/01/2019
25.24,000000000.00,02/01/2019
17.35,000000000.00,02/01/2019

Есть ли способ сделать это в UltraEdit в режиме столбца или нет?

1 Ответ

1 голос
/ 05 мая 2019

Это возможно, если переместить курсор в начало файла с помощью Ctrl + Home и открыть обычное окно Найти , например, с помощью Alt + F3 (назначение клавиш по умолчанию) ) и

  • введите в качестве строки поиска (?:19\d\d|200[0-9]|201[0-8]|0[1-4]/01/2019)$,
  • выберите Текущий файл для опции В ,
  • нажмите кнопку с зубчатым колесом, чтобы показать дополнительные параметры поиска, если они еще не видны,
  • отметьте опцию Регулярные выражения и выберите Perl ,
  • установите флажок Фильтровать строки и выберите Показать ,
  • установите флажок Закрыть после поиска ,
  • снять все остальные опции проверки мальчика,
  • нажмите кнопку Далее , чтобы запустить поиск и скрыть все строки, соответствующие строке поиска регулярного выражения Perl.

Строка поиска в регулярном выражении Perl соответствует годам от 1900 до 1999 ИЛИ годам 2000 до 2009 ИЛИ годам 2010 до 2018 ИЛИ даты 01/01/2019 до 04/01/2019, которые должны быть найдены в конце строки для положительного совпадения.

Ну, неясно, является ли формат даты DD/MM/YYYY (британский) или MM/DD/YYYY (США). Таким образом, сокрытие строки может быть правильным или неправильным в зависимости от формата даты и значения старше 05/01/2019 . Я предполагаю, что формат DD/MM/YYYY на сегодняшний день равен 2019-05-05 (международный формат даты ГГГГ-ММ-ДД), поэтому 06/01/2019 будет датой в будущем, если она будет MM/DD/YYYY.

.

Этого же можно добиться, выполнив поиск с помощью регулярного выражения Perl для

(?:0[5-9]/01/2019|[1-3]\d/\d\d/2019|\d\d/0[2-9]/2019|\d\d/1[0-2]/2019)$

соответствует датам 05/01/2019 до 09/01/2019 ИЛИ любая дата с первой цифрой дня, равная 1 до 3 в году 2019 ИЛИ любая дата с месяц 02 до 09 в год 2019 ИЛИ любая дата с месяцем 10 до 12 в год 2019 в конце строки с использованием Скрыть вместо Показать в качестве опции фильтра для Строки фильтра .

...