Энциклопедия: улучшение раздела о макросах

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Skirda » Tue 11 Jan, 2011 16:03

Latest post of the previous page:

готов
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Raistlin
Posts: 698
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by Raistlin » Wed 12 Jan, 2011 00:43

Для $If условие называется Expr, для iif() — Cond. Неаккуратненько. Предлагаю сделать везде Cond.
Magically yours
Raistlin

User avatar
Raistlin
Posts: 698
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by Raistlin » Fri 14 Jan, 2011 13:22

Переменные
А закачать вложение не дает - "возможная атака".

Осталось непонятым:
Если изначально переменная имела тип REG_DWORD, то при сохранении с помощью функции msave() тип меняется на REG_QDWORD.
Преобразование чисел с плавающей точкой в строку осуществляется по формату "KeyMacro/CONVFMT:REG_SZ" (по умолчанию "%.6g").
Если кто объяснит, что имеется в виду, на пальцах (на примерах), возьмусь изложить по-русски.
Last edited by Raistlin on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Исправлено форматирование кода
Magically yours
Raistlin

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Skirda » Fri 14 Jan, 2011 13:33

Конвертация...
1. В реестре у тебя была целочисленная переменная "a" типа REG_DWORD (4 байта)
2. Ты вызвал msave, что бы ее сохранить. В результате у тебя в реестре эта переменная стала типа REG_QDWORD (8 байт)

Про вещественное.
1. CONVFMT - формат в стиле printf`а, по умолчанию он "%.6g" (что это такое - см.хелп по языку Це, например)
2. Чтобы можно было сохранять вещественные в реестре, был выбран формат хранения типа REG_SZ. Почему не BYNARY, а SZ? чтобы проще было в реестре ковыряться :-)
3. При считывании переменных из реестре ФАР преобразует их из строки в double, при сохранении - из double в строку.
We are the Borg. You will be assimilated.
So Say We All!

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe » Fri 14 Jan, 2011 13:47

Skirda wrote:...а еще лучше дифом к текущей ревизии (если не к текущей, то укажи ключи -c -p для diff, что бы было понятно)
Почему не "-u"?
Мне вот ничерта не понятен результат "-c".

P.S.

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe » Fri 14 Jan, 2011 14:03

По форме патча:
  • Большая загадка откуда взялись абсолютные ссылки.
  • Абсолютно ни к чему мимоходом переформатировать длинные строки: это затрудняет восприятие содержательных изменений.
  • Менять регистр там, где вы не понимаете зачем он такой, не надо. По всей энциклопедии ссылка на главную страницу с маленькой буквы, а одной статье значит будет с большой?
  • Кроме того, сопровождайте патч описанием и обоснованием предлагаемых правок, в противном случае никто ваши патчи расшифровывать не станет.
По содержанию:
  • Подожду обоснования.
    И лучше даже не патч приложить, а готовый vars.html

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Skirda » Fri 14 Jan, 2011 14:16

John Doe wrote:
Skirda wrote:...а еще лучше дифом к текущей ревизии (если не к текущей, то укажи ключи -c -p для diff, что бы было понятно)
Почему не "-u"?
Мне вот ничерта не понятен результат "-c".
мне привычнее так, с "-c -p".
но если ты будешь отлавливать такие патчи и накладывать на Писание сам, то задавай свои правила игры :-)
We are the Borg. You will be assimilated.
So Say We All!

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe » Fri 14 Jan, 2011 14:17

Берусь.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Skirda » Fri 14 Jan, 2011 14:18

John Doe wrote:И лучше даже не патч, а готовый vars.html
да, с этим соглашусь...

и, действительно, ненужно заниматься переформатированием - пусть это будет привелегия одного-двух человек :-)
We are the Borg. You will be assimilated.
So Say We All!

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe » Fri 14 Jan, 2011 14:21

Skirda wrote:и, действительно, ненужно заниматься переформатированием - пусть это будет привелегия одного-двух человек :-)
Самое страшное, что скорее всего это не было сознательным изменением...

Необходимо перепроверять собственные патчи.

User avatar
Tim Sobolev
Posts: 705
Joined: Fri 01 Apr, 2005 14:46
Location: Украина
Has thanked: 1 time

Re: Энциклопедия: улучшение раздела о макросах

Post by Tim Sobolev » Fri 14 Jan, 2011 17:39

Вариант изменения русской версии раздела о макро-функциях редактора.
Обновлены текущие функции работы с закладками.

User avatar
Raistlin
Posts: 698
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by Raistlin » Fri 14 Jan, 2011 19:05

John Doe wrote:Большая загадка откуда взялись абсолютные ссылки.
Я сохранил в Firefox'е страницу с svn. Вот и все. Ссылки вообще не трогал.
John Doe wrote:Абсолютно ни к чему мимоходом переформатировать длинные строки: это затрудняет восприятие содержательных изменений.
Что конкретно ты имеешь в виду? Да, я объединил это:
Целочисленные константы: NNN - 10-ричная константа, 0NNN - 8-ричная константа, 0xNNN - 16-ричная константа.
Целочисленные константы 64-разрядные.
и это:
Глобальные переменные можно записывать в специальную область Vars.
Из этой области FAR считывает глобальные переменные при старте.
в единые абзацы, потому что речь идет в них об одном и том же: о целочисленных константах и глобальных переменных, соответственно.
John Doe wrote:Менять регистр там, где вы не понимаете зачем он такой, не надо. По всей энциклопедии ссылка на главную страницу с маленькой буквы, а одной статье значит будет с большой?
Тут более уместен другой вопрос: а почему везде она с маленькой? Ссылки рядом - с большой.
John Doe wrote:Кроме того, сопровождайте патч описанием и обоснованием предлагаемых правок, в противном случае никто ваши патчи расшифровывать не станет.
Что-то ты (или вы, я уж не знаю) слишком суров(ы). А Валентин говорил - "welcome!" Я, конечно, вовсе не против описывать и обосновывать правки, но уж какая-то слишком скептическая реакция на труды :( .
Итак, что было сделано:
  • Исправлен кое-где стиль изложения. Описывать это подробнее - значит работать человеческим аналогом diff'а, ну да ладно. В частности, выброшено слово "вам" из первого предложения, объединены строки про именование переменных (ибо фактически одно и то же, переписанное дважды), "двойной точности 64-разрядные" поменены местами (потому как "64-разрядные" - более общий признак).
  • Создан новый раздел про присвоение значений с собственным (IMHO полезным) замечанием по поводу начального значения.
  • Слова "десятиричный" в русском языке нет. "Восьмиричный" и "шестнадцатиричный" - есть, но "ричный" само по себе бессмысленно, поэтому писать цифрами "8" и "16", по меньшей мере, спорно, а уж рядом с "десятичный" (не "10-чный" же!) и вовсе некрасиво смотрится.
  • Косметика: дефисы поменял на тире, прямые кавычки - на "елочки". Но предложения с ними надо переписывать, потому что непонятно, о чем речь идет. Мне, по крайней мере, вам, программерам, и так ясно, не сомневаюсь.
Может, что и забыл... Но, в конце концов, есть diff или нет? Читаем исходник, применяем мою правку, читаем полученный результат. Есть возражения - пишем. Или так только юпитерам позволено править?.. Что-то я не видел такого подробного отчета для RC.
John Doe wrote:И лучше даже не патч приложить, а готовый vars.html
Во-первых, мне движок вообще ничего приложить не дал, вы внимательно читаете или как? Во-вторых, diff разве не позволяет получить мой же html?
Мне не жалко, расскажите, как, приложу html.
Last edited by Raistlin on Fri 14 Jan, 2011 21:51, edited 1 time in total.
Magically yours
Raistlin

User avatar
HaRT
Moderator
Posts: 9156
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 174 times

Re: Энциклопедия: улучшение раздела о макросах

Post by HaRT » Fri 14 Jan, 2011 19:12

Raistlin wrote:Что-то ты (или вы, я уж не знаю), слишком суров(ы). А Валентин говорил - "welcome!" Я, конечно, вовсе не против описывать и обосновывать правки, но уж какая-то слишком скептическая реакция на труды :( .
Они не со зла. :-)
На самом деле спасибо Вам большое за Ваш труд по улучшению „Писания”!
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Raistlin
Posts: 698
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by Raistlin » Fri 14 Jan, 2011 20:57

Skirda wrote:ненужно заниматься переформатированием - пусть это будет привелегия одного-двух человек :-)
Видишь ли, переформатирование - это изменение ширины колонок и разработка стилей. Все остальное - это такие же важные правки, как исправление орфографических ошибок или добавление пояснений. Пример я дал выше - с объединением абзацев.
John Doe wrote:Самое страшное, что скорее всего это не было сознательным изменением...
Необходимо перепроверять собственные патчи.
У меня есть привычка, занимаясь чем-то, вылизывать результат до конца. Поэтому позволю себе утверждать, что "несознательных" изменений, видимых в html, в моем варианте нет. За все готов отвечать.

А все-таки, как присоединить файл к сообщению? Не иначе, быкам (носорогам :) ) не позволено...

HaRT, спасибо за поддержку! :beer:
Magically yours
Raistlin

User avatar
Raistlin
Posts: 698
Joined: Wed 16 Mar, 2005 16:01
Location: St. Petersburg
Has thanked: 1 time
Been thanked: 1 time
Contact:

Re: Энциклопедия: улучшение раздела о макросах

Post by Raistlin » Fri 14 Jan, 2011 21:25

Skirda wrote:Конвертация...
1. В реестре у тебя была целочисленная переменная "a" типа REG_DWORD (4 байта)
2. Ты вызвал msave, что бы ее сохранить. В результате у тебя в реестре эта переменная стала типа REG_QDWORD (8 байт)
Гм... Хотел спросить: "А зачем?" - но оказалось, что сначала надо выяснить: "А как?" Ибо:

Code: Select all

macro:post %%b=1; msave("%%b");
создает в реестре параметр типа QWORD. То есть "законным" путем получить записанную в реестр глобальную переменную в виде DWORD нельзя, или я что-то не так делаю/понимаю? Это во-первых. Во-вторых, всё-таки - а зачем? Чтобы я народу объяснил :) .
Magically yours
Raistlin

User avatar
John Doe
Бюрократ
Posts: 12531
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 235 times

Re: Энциклопедия: улучшение раздела о макросах

Post by John Doe » Fri 14 Jan, 2011 22:13

Raistlin wrote:Что-то ты (или вы, я уж не знаю) слишком суров(ы).
Ты/вы не важно, мне удобней вы, тебе ты - пожалуйста.
Raistlin wrote:А Валентин говорил - "welcome!" Я, конечно, вовсе не против описывать и обосновывать правки, но уж какая-то слишком скептическая реакция на труды :( .
И я говорю welcome!
Никакой скептической реакции по поводу содержательную стороны правок и быть не могло, поскольку я её даже не касался.

Описание нужно, поскольку зачастую всё не так просо как кажется.
Raistlin wrote:Что-то я не видел такого подробного отчета для RC.
А вы перечитайте тему: RC6, соответственно есть 6 отчётов. Последний невелик, ибо изменения в нём минимальны (чего не скажешь о предыдущем).

Патчи прошу не делать, потому как у вас это получается не очень, и даже прямо указанных ошибок не видите. Но это не проблема, патч это всего лишь дело техники, а главное содержание.
Raistlin wrote:
John Doe wrote:И лучше даже не патч приложить, а готовый vars.html
Во-первых, мне движок вообще ничего приложить не дал, вы внимательно читаете или как?
Сарказм я оставлю без ответа, а по поводу аттачей всё просто: надо архивировать.
Raistlin wrote:Во-вторых, diff разве не позволяет получить мой же html?
В том-то и дело.
Но повторюсь, это не проблема, патч я и сам сделаю.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: Энциклопедия: улучшение раздела о макросах

Post by Skirda » Fri 14 Jan, 2011 22:18

Raistlin wrote:То есть "законным" путем получить записанную в реестр глобальную переменную в виде DWORD нельзя, или я что-то не так делаю/понимаю? Это во-первых. Во-вторых, всё-таки - а зачем?
внутренняя реализация (числа в макросах) - __int64. смысл их держать в двордах?
We are the Borg. You will be assimilated.
So Say We All!

Post Reply

Return to “Обсуждение макросов”