Как использовать макрос [REPLACE( что?|на что!]...[/REPLACE] с большим списком?

Тема в разделе "Шаблон вывода", создана пользователем Michel_S_1958, 29 сен 2015.

  1. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Продолжаю всяческими способами "внедрять" при парсинге псевдо перевод с японского языка на русский.
    В связи стем, что встроенный синомайзер [SYN]…[/SYN] не работает с японскими иероглифами, для перевода размещаю базу данных перевода прямо внутри функции поиска-замены. Это прекрасно работает.
    Но столкнулся с новой задачей: осуществлять "перевод" японского текста внутри Повторяющихся границ. Результатом каждого цикла повторяющихся границ является значение [VALUE]. Функцию поиска-замены к нему не применишь, поэтому приходится использовать макрос поиска-замены [REPLACE( что?|на что!]...[/REPLACE].

    Получается конструкция:

    [REPLACE( что?|на что!][VALUE][/REPLACE].

    Вот только досада, что список "что?|на что!" очень большой (500 строк) и макрос выглядит громоздким и некрасивым. Вот если бы этот список, как в синомайзере, можно было засунуть в отдельный файл! Правда нужно было бы, чтобы он в отличии от синомайзера воспринимал правильно японские иероглифы!

    Подскажите, пожалуйста, выход из ситуации.

    1. Можно ли как-то использовать функцию поиска-замены внутри повторяющихся границ со значением [VALUE]?
    2. Есть ли какая то возможность использовать макрос поиска-замены с файлом, в котором записан большой список замен "что?|на что!"?
     
    seven нравится это.
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    1) Нет

    2) [REPLACE(<FILE=C:\file.txt>)]...[/REPLACE]

    С уважением к вам, Сергей.
     
  3. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Спасибо, Сергей!
    Формат понятен.
    Попробовал - работает, но японские иероглифы не воспринимает аналогично как и в случае с синомайзером.
    Странно, что японские иероглифы хорошо воспринимаются в функции поиск-замена, но не вопринимаются, когда используется файл для записи аналогичной базы замены. Перепробовал все возможные форматы файла .txt с кодировкой юникодов, но ничего не помогает. Кириллица и латиница вопринимается, а иероглифы - нет.
    Что делать? Может быть есть другой совет для решения проблемы?
     
  4. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Здравствуйте!
    1) Для начала приведите пример, о чем именно идет речь.
    2) приложите пример файла проекта и подробно распишите вашу ситуацию приводя примеры ссылок, картинок и другого нужного контента.
     
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте еще раз.

    Пожалуйста!

    Можете выложить сюда файл проекта + txt с иероглифами, я посмотрю, в чем дело. Либо можете выслать файл проекта мне на почту sbfroot@gmail.com
     
  6. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Файл проекта со ссылками откуда парсится информация прилагаю.
    Это вариант проекта без использования конструкции [REPLACE(<FILE=C:\file.txt>)]...[/REPLACE]. Проект рабочий. Словарь в этом проекте засунут в функцию поиск-замена второй границы парсинга "Блок с аксессуарами".
     

    Вложения:

    Последнее редактирование: 2 окт 2015
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Не вижу никаких проблем. Все прекрасно работает.
     
  8. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Сергей!
    Вы посмотрите выше в посте, что проблема возникает при использовании словаря, записанного в файл!
    Проект, который я послал работает, потому что там используется словарь, записанный внутрь функции поиска-замены. Я послал этот проект, чтобы его взять за основу дальнейшей модернизации.
    Проблема же возникает по причине того, что мне нужно использовать словарь в ПОВТОРЯЮЩИХСЯ ГРАНИЦАХ, в которых НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ ФУНКЦИЮ ПОИСКА ЗАМЕНЫ (смотрите выше нашу переписку).
    Если в этом проекте словарь удалить из функции поиска-замены и записать его в отдельный файл, чтобы потом использовать конструкцию [REPLACE(<FILE=C:\file.txt>)]...[/REPLACE], то перевод текста перестает работать. Потому что в файле не воспринимаются иероглифы. Об этом я также писал выше в посте.
    Проблема только в использовании словаря, записанного в файле, и в необходимости применения словаря в повторяющихся границах!
    Посылаю Вам сам файл со словарем и файл измененного проекта, в котором в повторяющейся границе 1 записана конструкция [REPLACE(<FILE=C:\Japanese_vocabulary.txt>)][VALUE][/REPLACE]. В этом варианте иероглифы не воспринимаются.
    Для простого эксперимента я в словарь дописал строку замены с латиницей и кириллицей - "японский словарь|japanese vocabulary". Тогда можно провести эксперимент, запустив макрос отдельно от проекта:
    [REPLACE(<FILE=C:\Japanese_vocabulary.txt>)]японский словарь, 元箱[/REPLACE]
    Макрос извлечет из словаря, записанного в файл, замену текста "японский словарь" и переведет его, а текст из иероглифов "元箱" останется нетронутым без перевода (без замены). Результатом макроса будет: japanese vocabulary, 元箱. Первая часть "японский словарь, 元箱" переведена, а вторая часть- нет.
     

    Вложения:

    Последнее редактирование: 3 окт 2015
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте!

    Простите, суетился и не на то смотрел. Смотрел на то, что иероглифы нормально подгружаются в программе!

    Сейчас понял, что загружается только 1 строка из файла, так как этим макросом давно не пользовался и забыл, что он берет по 1 строке.

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

    Сейчас, как вариант, можно выставить количество загружаемых из файла строк в меню - настройка - настройка макросов - FILE - параметр "сколько строк вставлять". Поставьте туда значение 277 (количество строк в вашем txt).

    С уважением к вам, Сергей.
     
  10. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Спасибо.
    Проверил.
    Теперь всё работает.

    Я попробовал в настройках поставить 300 вместо 277 - тоже работает. Т.е., если ставить цифру в настройках больше, чем количество строк, то это не приводит к нарушению работы макроса, хоть он и не находит в файле строки с номером выше 277?
     
  11. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста.

    Он "по кругу пойдет" (возьмет 277 строк файла, сбросит счетчик на первую строку и возьмет недостающие строки от начала файла). Думаю, ничего страшного!

    Сегодня-завтра постараюсь внести необходимые доработки и отписаться в этой теме.
     
  12. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Доработал:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    К адресу файла добавьте параметр [ENTIRE]
    В этом случае произойдет вставка всего содержимого файла.
     
    seven нравится это.
  13. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Привет, Сергей!
    Вставил параметр [ENTIRE] и перестал работать перевод. Что-то не так. Менял в меню настройки макроса, ставил "1". Не помогло. Удалил параметр и вернул настройки на "277" - снова стал работать перевод. Всё-таки параметр [ENTIRE] не работает.
     
  14. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    А вы скачали доработанный инсталлятор?
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Скиньте ваш файл проекта, посмотрю, как вы поставили атрибут.
     
  15. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Простите, сейчас проверил все еще раз. В нужную папку файл на FTP не залился. Исправил это! Пробуйте скачать сейчас.
     
  16. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Скачиваю файл cd_install, устанавливаю. Закачивается версия программы 11.9997 МК II от 25.09.2015. Ничего не меняется. Иероглифы не распознаются.
    Цитата: <CD_GRAN_5!>[CSVCS][REPLACE(<FILE=C:\Japanese_vocabulary.txt[ENTIRE]>)][VALUE][/REPLACE]
    Прилагаю проект. Файл со словарем прежний, который я прилагал ранее.
     

    Вложения:

    Последнее редактирование: 8 окт 2015
  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    Текущая версия программы 11.9998 (06.10.2015). Пожалуйста, обновитесь:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
  18. Michel_S_1958

    Michel_S_1958 New Member Пользователи

    Регистрация:
    8 июн 2015
    Сообщения:
    38
    Теперь действительно работает макрос с [ENTIRE]....Спасибо, Сергей!
     
  19. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Пожалуйста! Обращайтесь...
     

Поделиться этой страницей