Страница 5 из 6

Добавлено: Вт дек 09, 2014 12:11
Skif_off
ProgMan13
Спасибо, надо было сразу репортить :)

Добавлено: Ср дек 10, 2014 00:37
Skif_off
ProgMan13
Только сейчас вспомнил, что не проверил

Код: Выделить всё

[HintsCustomField]
0exts=*.txt;*.ini;*.inf
0fields=[=textline.1]\n[=textline.2]\n[=textline.3]\n[=textline.4]\n[=textline.5]\n[=textline.6]\n[=textline.7]\n[=textline.8]\n[=textline.9]\n[=textline.10]
таки упало:
х86

Код: Выделить всё

  Имя события проблемы:	APPCRASH
  Имя приложения:	TOTALCMD.EXE
  Версия приложения:	8.5.1.1
  Отметка времени приложения:	2a425e19
  Имя модуля с ошибкой:	TOTALCMD.EXE
  Версия модуля с ошибкой:	8.5.1.1
  Отметка времени модуля с ошибкой:	2a425e19
  Код исключения:	c0000005
  Смещение исключения:	00001c10
  Версия ОС:	6.1.7601.2.1.0.256.48
  Код языка:	1049
  Дополнительные сведения 1:	f808
  Дополнительные сведения 2:	f80848a68588a5910da39d482cd0246c
  Дополнительные сведения 3:	9015
  Дополнительные сведения 4:	90152e151883825ea6413858bc39daed
или

Код: Выделить всё

---------------------------
Total Commander 8.51a
---------------------------
Access violation at address 00401E7B. Write of address 200E0032.
Access violation at address 00401E7B. Write of address 200E0032
Windows 7 SP1 6.1 (Build 7601)

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Windows exception: C0000005
Stack trace:
00401E7B
401C97  4026B8  58073B  446589  4484F6  >42590C
447A9B  42590C  42AFC8  42B064  7056AB  
Raw:
401E61  4023C7  401C97  401EBD  402363  4026B8
6C5D76  447A9B  630063  690072  690072  690072
690072  46006A  61002C  6FB72C  448852  446589
4487C5  43785A  447AEE  447B66  4484F6  448519
42590C  580299  402E4A  446589  4487C5  448813
4275E8  42590C  447A9B  42590C  690072  690072
690072  690072  46006A  447A09  42590C  4489CE
44886F  446589  4487C5  4484F6  43785A  447AEE
447B66  4484F6  448519  42590C  447A9B  42590C
4023EF  4026B8  4036C1  63AAF4  4487C5  43785A

Press Ctrl+C to copy this report!
Continue execution?
х64

Код: Выделить всё

---------------------------
Total Commander 8.51a
---------------------------
Access violation.
Access violation
Windows 7 SP1 6.1 (Build 7601)

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Stack trace (x64):413F54
414133 412C7E 41D4C1 468C4E 6AE8A9 7E0CF7 431F15 7E5682
7E3C77 7E3AF8 7D3479 7DE8FF 7D3B20 814B6D 8D7E72 76F99BD1

Press Ctrl+C to copy this report!
Continue execution?
Для воспроизведения нужно раз навести на выложенный файл, увести курсор на другой и снова вернуться (х86 падает быстрее).

С обрезанием строк всё работает нормально вроде.

Добавлено: Пт дек 12, 2014 10:58
ProgMan13
Skif_off
TC падает если количество символов в подсказке в районе 3000. Плагин для одной строки возвращает максимально 1021 символ. Так что правильно их ограничивать для подсказок.

Добавлено: Пт янв 09, 2015 18:29
ProgMan13
Гислер подтвердил баг в TC с длинными подсказками и пообещал исправить.
Проблема в принудительном разбиении строк (CRLF): их 25 и под них резервируется 50 байт, а должно 50 юникодных символов, т.е. 100 байт. Авторы плагинов могут принудительно вставлять разрыв строк, чтобы избежать этих проблем. Правда, как я понимаю, придётся высчитывать кол-во символов. Я разбираться с этим не стал.

Добавил только пропуск пустых строк:
http://progman13.totalcmd.net/downloads ... e_Beta.zip

Добавлено: Пн янв 19, 2015 14:22
Skif_off
Ни у кого случайно не осталась предыдущая версия, в которой ещё не работает опция SkipEmpty=1?

Добавлено спустя 3 минуты:
ProgMan13 писал(а):Авторы плагинов могут принудительно вставлять разрыв строк, чтобы избежать этих проблем. Правда, как я понимаю, придётся высчитывать кол-во символов. Я разбираться с этим не стал
Полностью поддерживаю ваше решение :) Это наверняка скажется на скорости работы.

Добавлено: Чт янв 22, 2015 20:43
ProgMan13
Skif_off писал(а):Ни у кого случайно не осталась предыдущая версия, в которой ещё не работает опция SkipEmpty=1?
Зачем? Если прописать SkipEmpty=0, то будет работать как предыдущая.

Добавлено: Чт янв 22, 2015 22:51
Skif_off
ProgMan13
Показалось, что даже с SkipEmpty=0 есть задержка, но лучше поверю на слово, спасибо :)

количество строк

Добавлено: Пн мар 02, 2015 00:24
vitjazzz
Подскажите каким образом вывести 15 и 20 строки файла? Есть ограничения в количестве строк (до 10)?

Добавлено: Пн мар 02, 2015 01:09
Skif_off
vitjazzz
Плагин не умеет больше 10 (пока?) и, наверное, это хорошо - скорость тут должна быть далеко не на последнем месте.

Плагин PCREsearch не пробовали?

Skif_off

Добавлено: Пн мар 02, 2015 14:45
vitjazzz
Спасибо за оперативность! PCREsearch помог (частично).
Задачей является вывод в колонку ТС информации тэга xml файла (как оказалось послу установки плагина -у разных файлов разные номера строк целевого тэга//не обратил внимание :(

Добавлено спустя 29 минут:

Если правильно понял, для решения моей задачи необходимо написать регулярное выражение для поиска строки с тэгом <LastName>, родителем для которого будет ИМЕННО <FullName>,

Код: Выделить всё

<FullName>
<LastName>Иванов</LastName>
</FullName>
так как строка с тэгом <LastName> в xml файле встречается несколько раз:

Код: Выделить всё

<ChiefName>
<LastName>Петров</LastName>
</ChiefName>
:idea: буду учить regexp-ы :idea:

Добавлено спустя 1 час 55 минут:

<FullName> встречается в файле только один раз, значит необходимо найти и вывести следующую за <FullName> строку. Помогите с регулярным выражением! Мои попытки безрезультатны:

Код: Выделить всё

regex4=(\<\Fullname>\R)

Добавлено: Пн мар 02, 2015 18:15
Skif_off
vitjazzz
Попробуйте так:

Код: Выделить всё

regex4=(<FullName>[\r\n]{1, 2}\s+<LastName>)([А-ЯЁа-яё]+)(</LastName>)
regex4replace=$2

Добавлено: Вт мар 03, 2015 10:30
vitjazzz
Пустые строки выдает ТС. Ни в какую :(
А очень нужно. С регекспами знаком очень поверхностно, а плагин работает именно с ними, придётся разбираться...
Возможно есть RegExp тестеры, которые помогут мне быстрее вникнуть? Что посоветуете?

Добавлено: Вт мар 03, 2015 11:39
Skif_off
vitjazzz
Есть масса онлайн-ресурсов, сам только осваиваюсь, предпочитаю RegExp или (чаще) в текстовом редакторе пробую.
Напортачил я в количестве повторений, прошу прощения, попробуйте так:

Код: Выделить всё

regexN=(<FullName>[\r\n]{1,2}\s*<LastName>)([А-ЯЁа-яё]+)(</LastName>) 
regexNreplace=$2
К слову, похожая задача, только я там экранирую скобки <>, это делать необязательно :)

P.S. Не забывайте, что при копировании кода в конец каждой строки добавляется пробел, что может сыграть дурную шутку.

P.P.S. Наверное, нужна отдельная тема по регэкспам...

TO Skif_off

Добавлено: Вт мар 03, 2015 14:02
vitjazzz
Решено и реализовано с помощью идеи Skiff_off,
онлайн-тест-отладчика https://regex101.com/#pcre

Регулярное выражение:

Код: Выделить всё

(<FullName>\K)+[\n\s]+(<LastName>\K)([А-ЯІЇҐ][а-яіїґ]+)
возвращает строку между тэгом LastName идущим ПОСЛЕ тэга FullName (т.к. LastName в искомых файлах встречается минимум три и больше раз)
Часть XML файла:

Код: Выделить всё

 <RegionalContacts>
            <LocalAuthorityHead>
              <LastName>Фамилия</LastName>
              <FirstName>Главы</FirstName>
              <MiddleName>Сельсовета</MiddleName>
            </LocalAuthorityHead>       
..................................................................................
                 <Percent>100</Percent>
                  </ParcelPart>
                  <Authentication>
                    <NaturalPerson>
                      <FullName>
                        <LastName>Іванов</LastName>
                        <FirstName>Іван</FirstName>
                        <MiddleName>Зіновійович</MiddleName>
Огромная благодарность товарищу Skif_off за проявленую помощь и интерес

Добавлено: Сб сен 19, 2015 19:42
Dimsok
ProgMan13 писал(а):
Добавил только пропуск пустых строк:
http://progman13.totalcmd.net/downloads ... e_Beta.zip
Не работает ссылка

Скачалось.

Добавлено спустя 1 час 22 минуты:

Есть идеи, каким образом можно осуществить вывод текстовых строк в колонки из файла, находящегося в архиве? Речь о словарях dsl, упакованных каждый в отдельный архив dz c помощью dictzip. По сути обычный gzipped.