CtrlA CtrlX F8 Ctrlv
), то ФАР виснет намертво. Повторяется на Windows XP Sp3 FAR 3.0.4748 и на Windows 7 x64 sp1 FAR 4700 x64. Ошибка старая, большая просьба заняться этим - сильно мешает работе!!!Завис при перекодировке
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
Если прилагаемый файл (в кодировке OEM-866) открыть в редакторе, отметить всё, вырезать в буфер, сменить кодировку на ANSI и вставить из буфера ( последовательность клавиш:
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
Вычислил "террориста". Оказался LuaMacro . Он входит в комплект поставки. Что делать?
При всех остальных плугинах работает. Добавляю LuaMacro - виснет. Может, из-за макроса какого?
При всех остальных плугинах работает. Добавляю LuaMacro - виснет. Может, из-за макроса какого?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
Вот теперь точно вычислил. Макрос ClipBoard.lua . Был кем-то сделан для исправления ошибки (особенности) 3-го ФАРа, отсутствовавшей в 1-м: копирование текста через клипборд из других приложений приводило к абсолютно непредсказуемым результатам.
Эх, макрос - это "заплатка", исправлять надо! Чтоб было ка в первом. Возможно, сделать настройку.
Эх, макрос - это "заплатка", исправлять надо! Чтоб было ка в первом. Возможно, сделать настройку.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- zg
- zero-gravity
- Posts: 6038
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Завис при перекодировке
far3 — уникодный, far1 — нет. именно в силу этой фундаментальной причины у них разное поведение, а не в силу ошибки или особенности.buniak_a_h wrote:Был кем-то сделан для исправления ошибки (особенности) 3-го ФАРа, отсутствовавшей в 1-м
это неправда. результат абсолютно предсказуем.buniak_a_h wrote:копирование текста через клипборд из других приложений приводило к абсолютно непредсказуемым результатам.
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
Это я прекрасно понимаю. Но, как писал Вирт, правильной считается программа, достигающая требуемого результата за удовлетворительное время (Структурное программирование, примерно 70-75 годы прошлого века). Увы, кракозябры - не тот результат, которого ожидаешь от копирования текста через буфер. Об этом много писано на этом форуме; видимо, авторам не до того. С кирилицей, видимо, дело не имеют...
Ну да. Всегда можно быть уверенным, что при копировании из, например, Delphi-7 вы получите кракозябры. Честно говоря, такая предсказуемость не радует.
P/S. У меня уже 2 предупреждения от Вас. Жду третьего - опять позволил себе покритиковать авторитетов...
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Завис при перекодировке
На форуме подробно разбиралось почему так происходит, кто виноват (не фар), и что можно сделать (под фар 3 как минимум два скрипта есть).
Вот за упорное и методичное игнорирование этого легко получить предупреждение.
Я вижу тут только это, и не замечаю никакой критики авторитетов.
- zg
- zero-gravity
- Posts: 6038
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Завис при перекодировке
авторы с кириллицей дело имеют. но не только с ней, поэтому мыслят чуть шире. фар получает содержимое буфера через GetClipboardData(CF_UNICODETEXT) и как есть вставляет его, куда просили. а вот в буфере он может появится условно тремя способами:buniak_a_h wrote:Увы, кракозябры - не тот результат, которого ожидаешь от копирования текста через буфер. Об этом много писано на этом форуме; видимо, авторам не до того. С кирилицей, видимо, дело не имеют...
1. добавить корректный CF_UNICODETEXT. в фар вставится то, что добавили и обычно с этим всё в порядке.
2. добавить корректный CF_LOCALE. тут тоже, исключая совсем уж клинические случаи, тоже всё ок.
3. просто добавить CF_TEXT. это как раз ваш случай. тогда система сама преобразует текст в уникод в соответствии с локалью текущей раскладки клавиатуры. это документировано и результат абсолютно предсказуем. что здесь ещё может сделать фар — мне не понятно. если вам понятно — расскажите.
нет. если текущей будет русская раскладка, то вы получите русские буквы.zg wrote:Всегда можно быть уверенным, что при копировании из, например, Delphi-7 вы получите кракозябры.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Завис при перекодировке
Ну, формально, одна лазейка есть:
Т. е. когда в буфер кладёт эта ваша Delphi 7, EnumClipboardFormats вернёт сначала реальный CF_TEXT, потом сгенерированный CF_UNICODETEXT. Когда более юникодное проиложение - наоборот.The EnumClipboardFormats function enumerates formats in the order that they were placed on the clipboard. If you are copying information to the clipboard, add clipboard objects in order from the most descriptive clipboard format to the least descriptive clipboard format. If you are pasting information from the clipboard, retrieve the first clipboard format that you can handle. That will be the most descriptive clipboard format that you can handle.
The system provides automatic type conversions for certain clipboard formats. In the case of such a format, this function enumerates the specified format, then enumerates the formats to which it can be converted.
Это официально документировано и не менее официально рекомендуется брать то, что лежит первым.
Да, теоретически возможна ситуация, когда приложение само засунуло в буфер сначала кривой CF_TEXT, а уже потом правильный CF_UNICODETEXT, но это уже ССЗБ.
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
1. Знаю. Скачал один из таких макросов. Получил завис в файле (в первом сообщении темы).
2. В прикладном смысле поведение первого ФАРа более логично и полезно с практической точки зрения. Зачем делать более навороченной, но с практической точки зрения худшее? И я не утверждал, что это ошибка. Ошибка (точнее, недоделка) в Delphi7. Но есть способ исправлять такое, "заплатками" (макросами) - так зачем надо на заплатки полагаться?
3. А судя по тому, что тема многократно поднималась, игнорирую не я - игнорируют разработчики.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Завис при перекодировке
Выводы из этого неправильные сделали.
Что вы там откуда скачали никто не знает.
Плагин, который именно на это ориентируется: https://github.com/Maximus5/FarPlugins/ ... ixer-1.1.3
- buniak_a_h
- Posts: 4270
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 644 times
- Contact:
Завис при перекодировке
Спасибо. Скачал на пларинге такой, но... Для 2-го ФАРа, третий не видит.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Завис при перекодировке
Надо качать не с плагринга, я же не зря ссылку дал.
P.S.
Макросы тоже есть рабочие, если что.
P.S.
Макросы тоже есть рабочие, если что.