Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » TextPipe

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Открыть новую тему     Написать ответ в эту тему

superkatya



Катька - смутьянка
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поиск лекарств ведётся исключительно в разделе «Варезник».
TextPipe Pro
Текущая версия: 12.0 (06.06.2022)

Официальный сайт

 
Поддерживаемые ОС: Windows 10, 8, 7, Vista, 2019/2016/2012/2008/2003, x86 и x64
 
Скачать пробную версию в ZIP / в виде EXE-setup (27.5 МБ) / Список изменений
 
TextPipe Pro - утилита для пакетной обработки текстовой информации. Программа служит для форматирования и конвертирования текстовых файлов, замены в них текста, выполнения сложных преобразований, конвертирования текста из одного формата в другой.
Некоторые возможности TextPipe Pro:
• Пepepaбoтaнный пoиcк и зaмeнa в cooтвeтcтвии с заданной cxeмой. Причём можно задать как абсолютно идентичные cooтвeтcтвия, так и c нeчёткoй лoгикoй coпocтaвлeния (для иcпpaвлeния oбщeизвecтныx oшибoк нaбopa).
• Сортировка текста по алфавиту, рандомизация строк, подсчёт и удаление дублирующихся строк.
• Добавление и(или) извлечение определённых слов, строк или частей текста, как введённых вручную, так и содержащихся в любом другом текстовом файле.
• VBScript или JScript (или PerlScript, PythonScript, REXXscript и т.д.) фильтpы мoгyт быть oпиcaны c нacтpoйкoй для oбpaбoтки кaждoгo пoля.
• Пpeoбpaзoвaниe cимвoлoв кoнцa cтpoки мeждy фopмaтaми Unix, Mainframe, DOS и Macintosh.
• Преобразование текста в список слов.
• Иcпpaвлeниe зaглaвнocти бyкв (нaпpимep, sImon -> Simon), несколько видов смены регистра текста.
• Удaлeниe пpoбeлoв в нaчaлe, в кoнцe cтpoк, и yдaлeниe мнoжественных пробелов.
• Удaлeниe тэгoв HTML и XML или только их атрибутов.
• Дoбaвлeниe нyмepaции cтpoк, лeвoгo и пpaвoгo пoлeй, зaгoлoвкoв и cнocoк.
• Дoбaвлeниe или yдaлeниe cтoлбцoв тeкcтa, дoпoлнитeльныx cтpoк.
• Дoпoлнeниe или yceчeниe дaнныx пoлeй дo определённой шиpины.
• Извлeчeниe aдpecoв элeктpoннoй пoчты и URL и мнoгoе мнoгoe дpyгoe...


Полезные обучающие статьи по программе:
  • тут

    Программы аналогичного назначения:
  • PowerGrep

  • Всего записей: 3232 | Зарегистр. 01-06-2001 | Отправлено: 12:58 23-06-2004 | Исправлено: vasevase, 04:43 06-04-2023
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос у меня. Как заставить фильтр "Replace List" понимать юникод-символы в заменах?
    Что только не пробовал - лист в интерфейсе программы, венешний *.xls, *.tab и т.д. - безуспешно. Find type выставлял UTF-16 (как и в файлах списков) и т.п.
    Perl с UTF-8 не подходит, так как у меня литеральный текст, а не регэкспы. Но с ним, кстати, тоже не работает (если преобразовать текст в список регэкспов).
    Основная проблема заключается в том, что замена происходит некорректно, если в поле "замена" присутствуют юникод-символы. Эти смволы "бьются", меняются на левые и т.п.
     
    Подскажите плиз, в какую сторону копать? Может предварительно преобразовывать не ANSI-символы в HEX, а потом обратно?.. Хотя, не изящно это... То ли дело в PowerGREP - поддержка юникода полная без всех этих плясок. Просто вставляется список с разделителем и всё. Надёжно. Но там нет других "фишек", которыми ценен TextPipe.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 14:35 08-10-2016
    SFC



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    Я могу только предложить то что у меня 100% работает
    http://s1.bild.me/bilder/240416/315536320161008-161630.png
     
    Добавлено:
    т.е. как раз тот случай когда обычный текст меняется на то что содержит юникод символ.

    ----------
    [ offline ]

    Всего записей: 1663 | Зарегистр. 21-01-2003 | Отправлено: 16:21 08-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SFC
    Спасибо за ответ. Видимо у меня специфическая комбинация. Я чуть позже подготовлю тестовый фильтр и выложу.
     
    Добавлено:
    Вот тестовый фильтр:
    http://sendfile.su/1272543
     
    Надо будет подправить пути для входного файла и списка замен.
    В окне примера проблема в последних 3-х строках. Замена не происходит.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 16:29 08-10-2016
    SFC



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Вот тестовый фильтр:

    Да действительно. Я также не могу ни заставить работать фильтры из Excel, ни фильтры из списка внутри TextPipe. Такое впечатление что окна для ввода в операторе списка не юникод.
    Но прекрасно работает если на каждую пару замен делать один свой оператор. Это конечно не список, но лучше чем вообще ничего.
    http://rgho.st/8dWfmscpx

    ----------
    [ offline ]

    Всего записей: 1663 | Зарегистр. 21-01-2003 | Отправлено: 19:31 08-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SFC
    Похоже на баг программы. Точнее, конкретного фильтра Replace list. Причём, нужного результата не смог добиться и более новых версиях программы, включая последнюю.

    Цитата:
    Такое впечатление что окна для ввода в операторе списка не юникод.  

    ANSI. Странно то, что не работает, также, из внешних файлов, которые UTF-16.

    Цитата:
    Но прекрасно работает если на каждую пару замен делать один свой оператор. Это конечно не список, но лучше чем вообще ничего.  

    Не, это не выход. У меня замен более ста (а могут быть и тысячи). Для себя проблему решил так:
     
    ПРОБЛЕМА 2
    Остаётся список замен перевести в ASCII + UCN \U, что делается в один клик в EditPad, к примеру.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 20:02 08-10-2016
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81

    Цитата:
    Вот тестовый фильтр:  
    http://sendfile.su/1272543  

    Включить поддержку utf-8 во всех (!!!) операциях (и соответственно убрать ненужные конвертации кодировок) не пробовали?

    Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 22:21 08-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    В фильтре Replace list опция utf-8 появилась только в 10-й версии программы.
    Если речь идет о Perl и его соотв-й опции, то в этом случае литеральный текст нужно преобразовывать в регэкспы (экранировать спец-символы). Но помимо того, что это медленнее, замены всё равно получаются некорректными (по крайней мере на моём тестовом файле). Так что преобразование в ASCII + UCN, похоже, является единственным надёжным решением.
     
    Добавлено:
    З.Ы. А если вообще без промежуточных преобразований в UTF-16 и в Replace list выставить "exact", то так тоже не работает, потому как (как уже отмечалось выше) фильтр Replace list воспринимает список найти/заменить как ANSI, в не зависимости от его типа (в окне программы, либо внешний файл).

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 22:27 08-10-2016
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81

    Цитата:
    В фильтре Replace list опция utf-8 появилась только в 10-й версии программы.

    Я говорил про версию 9.7.3 из шапки. В ней есть все нобходимые опции для того, о чем я говорил выше.

    Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 01:51 09-10-2016 | Исправлено: Jonmey, 01:53 09-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
     
    Ваш болд и декларативный тон как бы намекают, что кто-то чего-то не знает / не понял по данному вопросу, в отличие от вас. Какие такие загадочные опции имеются в виду, не могли бы разъяснить по-подробнее?
     
    Всё, на самом деле просто как апельсин. Фильтр Replace list в используемых нами версиях программы не поддерживает юникод. Потому как эта опция добавилась только в 10-й версии программы:
    Цитата:
    Search/replace list filters now support Unicode.
    http://www.datamystic.com/textpipe/whatsnew
    Т.е., другими словами, независимо от кодировки входящего потока, данный фильтр не может осуществить корректную замену на юникод-текст, т.к. попросту его не понимает.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 14:08 09-10-2016
    Jonmey

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81

    Цитата:
    Фильтр Replace list в используемых нами версиях программы не поддерживает юникод.

    Ну и что? Тем не менее, ваш скрипт, скорректированный как указано выше, на версии 9.7.3 все строки обработал успешно.
    P.S.

    Всего записей: 1316 | Зарегистр. 17-01-2011 | Отправлено: 20:08 09-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey

    Цитата:
    Ну и что?

    Это был аргумент?..

    Цитата:
    Тем не менее, ваш скрипт, скорректированный как указано выше, на версии 9.7.3 все строки обработал успешно.  

    Где?
    Предложенный SFC вариант основан на другом фильтре, поддерживающем только одну пару найти/заменить. И как раз в нём юникод работает в версии UTF-16, (что, кстати, требует предварительного преобразования из UTF-8).  
    Поэтому, ваш комментарий
    Цитата:
    Включить поддержку utf-8 во всех (!!!) операциях
    вызвал некоторое недоумение. На мои резонные (и вполне нейтральные!) замечания, что его там, собственно, негде включать вы начали выражаться болдом, причём, без какой-либо конкретики.
     
    Поверьте, я благодарен вам что отозвались и попытались помочь. Каюсь, мне иногда не хватает "толерантности" в ситуациях, когда люди ляпнут что-нибудь не в тему, а потом продолжают упорствовать, боясь признать, что ткнули "пальцем в небо". Постараюсь впредь быть не столь язвительным.
    __________________
    Итак, если у кого-нибудь возникнет схожая задача, то вот рабочее решение.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 20:50 09-10-2016 | Исправлено: Romul81, 00:13 18-10-2016
    DrAlexMD

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Интересно получается, зашел поделиться точно такой же проблемой насчет UTF-8 и реплэйс листа, а здесь ее как раз и обсуждают - два дня потерял, пытаясь как-то решить эту проблему, уже искал и другие сторонние программы.
     
    Romul81
    А при перекодировки в ASCII - информация не теряется? К примеру греческий текст?
     
     
    Добавлено:
    Что-то у меня не получается - файл зависает при открытии, такое ощущение, что он остается в UTF-16.
     
    "Hex Decode"  - обязателен, или это под Ваши задачи?
    Могли бы выложить фильтр.

    Всего записей: 174 | Зарегистр. 31-03-2005 | Отправлено: 23:22 17-10-2016 | Исправлено: DrAlexMD, 23:23 17-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DrAlexMD
     
    По идее ничего не должно теряться, т.к. это не просто ASCII, а ASCII + \uFFFF. Я список замен делаю в EditPad. Там если при конвертировании или изменении кодировки текста происходит его безвозвратная потеря, пусть даже малейшая, то программа предупреждает. Можете потренироваться. Составить таб-лист замен из юникод-символов в UTF-8. Конвертировать его в ASCII + \uFFFF (меню Cenvert). Использовать этот список для замен в сочетании с последовательностью фильтров, которую я указал выше. Проанализировать получившийся результат. По идее всё должно работать.
     
    В принципе, список замен можно подготовить и средствами сомого TP. Типа через T-filter добавить таб-текст, перевести в ASCII + \uFFFF, сохранить в %TEMP%. А уже в нужном месте подхватить этот список . В теории должно работать, но надо пробовать.
     
    Добавлено:

    Цитата:
    "Hex Decode"  - обязателен, или это под Ваши задачи?  

    Конечно, вам же потом \uFFFF обратно в юникод преобразовать надо, не так ли?
    Залил тестовый фильтр.
     
    http://sendfile.su/1275356

     Можно использовать как шаблон. Хотя, практически такой же в стандартных примерах присутствует. Оттуда и почерпнул идею.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 00:04 18-10-2016 | Исправлено: Romul81, 00:26 18-10-2016
    DrAlexMD

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    Если честно, у меня как-то не идет - что не делал -прямо в вашем фильтре изменил список замен и результат выдает кракозябы вместо вставляемого русского текста.
     
    А схема "\\U([0-9a-fA-F]{4})" - она для чего?  

    Всего записей: 174 | Зарегистр. 31-03-2005 | Отправлено: 12:11 19-10-2016 | Исправлено: DrAlexMD, 13:52 19-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DrAlexMD
    Еще, раз, по пунктам.
     
    1) Входящий поток до фильтра должен быть в кодировке UTF-8.
     
    2) Список замен в фильтре должен быть уже в подготовленном виде, т.к. этот фильтр по прежнему не понимает юникод. Но он работает с ANSI, поэтому в списке замен могут находится только ASCII-символы. Что мы и делаем с помощью предварительного конвертирования списка, напр.

    Код:
    Найти    заменить

    превращается в
    Код:
    \u041D\u0430\u0439\u0442\u0438    \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C

    Это преобразование можно делать во внешнем редакторе, например EditPad.
     
    3) Поэтому, входящий поток нужно аналогично преобразовать из юникода в ASCII + \uFFFF, что и делает комбинация фильтров
     
    |--Convert from UTF-8 to UTF-16LE  
    |    
    |--Convert UTF16-LE to Escaped Unicode (ASCII + UCN \U)  
     
    Далее этот поток воспринимается фильтром Replace List как ANSI (потому как он только с ним и может работать).
     
    4) После осуществления замен HEX-коды нужно опять преобразовать в юникод-символы. Это преобразование осуществляется с помощью комбинации фильтров:
     
    +--Perl pattern [\\U([0-9a-fA-F]{4})] with [$1]  
       |  
       |--Hex Decode  
       |    
       +--Convert from UTF-16BE to UTF-8  
     
    Уж не знаю, как ещё подробнее рассказать.
     
    P.S. Restrict to lines matching [~] - простой ограничитель строк, чтоб отрабатывать только те строки, в которых присутствует этот символ, а не все подряд. Это просто частный пример. Можно вообще без ограничителя.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 15:59 19-10-2016
    DrAlexMD

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    О, наконец-то. Большое спасибо Вам за терпение.  
    Проблема была в п.2 - я даже не думал, что нужно и преобразовать и список замены (поэтому и не понимал Вас).  
    Но это, согласитесь, громоздкое или не эстетичное решение - может есть другой способ, через другие кодировки? В 10-й эту проблему решили?
     
    В моем редакторе даже нет конверта в uFFFF - пришлось скачивать EditPad.
     
    P.S. Оффтоп - Вы писали, что в PowerGrep все делается без танцев с бубном, но я не нашел там, где можно делать замену из списка (файла).

    Всего записей: 174 | Зарегистр. 31-03-2005 | Отправлено: 20:23 19-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DrAlexMD
    Да, согласен, как я уже выше отмечал, это решение не выглядит эстетичным. Но на данный момент оно единственное, которое мне удалось найти. В 10-й версии вроде бы есть поддержка utf8 в этом фильтре. Но нет самой десятой версии ))
     
    Кстати, для преобразования списка замен вовсе не обязательно прибегать к другим программам. Можно настроить tray-фильтр в самом TP, заточенный на обработку буфера обмена. Т.е. копируете из excel к примеру две колонки, соответствующие паре найти/заменить, из трея запускаете обработку буфера обмена и вставляете в фильтр замен получившийся список. Секундное дело.
     
    И да, Power GREP всё это может без эротических танцев. Список вставляется в окно программы. В качестве разделителя может быть табуляция или ===.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 20:51 19-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подготовил фильтр обработки списка замен, работающий с буфером обмена.
    http://sendfile.su/1276124
     
    Тест по F5 тоже отрабатывает корректно.
    Для доступа из трея нужно положить фильтр в папку по пути:
    C:\Users\имя пользователя\Documents\DataMystic\TextPipe\TaskMenu\

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 20:18 20-10-2016
    DrAlexMD

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81
    О, большое спасибо - намного удобнее, не знал о таких возможностях программы работы с трейем и буфером обмена.
     
    Тогда может поможете еще по 2м вопросам (если сильно не в груз), которые тут давно задавал (см. стр.[6],[7],[9]), но так толком и не разобрался.
     
    1. Есть массив файлов html. Задача: переименовать каждый файл, к примеру строкой между тегами <title> и </title> (т.е. название файла, чтобы соотвествовало названию странице html).
    Проблема именно в переименовании самого файла.
     
    2. Обсуждали вопрос, как можно автоматически сформировать оглавление html страницы - навели  
    GenToc - но так и не понял, как подключить сторонний фильтр.

    Всего записей: 174 | Зарегистр. 31-03-2005 | Отправлено: 10:44 24-10-2016
    Romul81



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DrAlexMD
     
    Я бы эту задачу сделал в PowerGREP. Тем более, что в библиотеке программы уже имеется преднастроенный фильтр именно для этой цели. Называется "Rename files based on HTML title tags".
     
    Замечал, что макросы TP иногда криво работают.
     
    Добавлено:
    2. По второму вопросу сходу не скажу - разбираться надо. Но уверен, что инструменты для этой задачи тоже должны иметься.

    Всего записей: 1326 | Зарегистр. 03-03-2008 | Отправлено: 14:03 24-10-2016
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

    Компьютерный форум Ru.Board » Компьютеры » Программы » TextPipe


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru