@Linda-chan

Тег программизм в блоге Linda-chan

Linda-chan

Ультимативная замена жуквери.
https://gist.github.com/Lin...03aa4a01370d5f04d895

Linda-chan

По мере возможности заменяю в своих скриптах код вида

if (document.querySelectorAll)

на код вида

if ("querySelectorAll" in document)

Всё правильно делаю?

Linda-chan

? StrComp("0anime", "[anime", vbBinaryCompare)
-1
? StrComp("0anime", "[anime", vbTextCompare)
1

Когда забываешь, что vbTextCompare – это не только сравнение без учёта регистра.

Linda-chan

Вчера я узнала, что парсер VB IDE знает о ключевом слове CDecl в Declare и не ругается на него. Правда, вызов функции, объявленной так, всё равно приводит к ошибке «Bad DLL calling convention», при чём сразу же, без попытки что-либо сделать вроде загрузки DLL. Думаю, что это что-то оставшееся в наследство от QuickBasic.

Linda-chan

Чувак городит какие-то вавилоны из классов лишь бы не использовать switch. А мы потом удивляемся, чего программы тормозят.
https://betterprogramming.p...instead-aef014c9b31d

Linda-chan

Как я люблю это. Надо сделать одну бяку в имеющейся программе. Оказывается, что для того чтобы её сделать нужен код, который часто запиливаю в разных проектах, и пора бы его вынести в какую-нибудь библиотеку. Есть две библиотеки: в одну код запиливать лень, в другой всё внутрях немного не так устроено, и код либо впиливается по-хорошему с переписыванием части внутренностей, либо по-плохому и не очень красиво. И вот такая фигня каждый раз.

Linda-chan

Снилось, что в VB6 добавили ключевое слово «Something» для тех, кому лень писать «If Not Byaka Is Nothing».

Linda-chan

Важно понимать, что когда какой-нибудь девелопер выкатывает lightweight-что-то, то это самое lightweight относится исключительно к количеству строк в «демонстрационном» примере использования. Под капотом там обычно фреймворк на ферймворке фреймворками погоняет.

Linda-chan

Для самых маленьких.
https://www.w3schools.com/codegame/index.html

Linda-chan

Оказалось, что в VBScript есть свой eval. Называется Execute и ExecuteGlobal. В VB такого нет и не было.

Linda-chan

Написала свой первый скрипт на PowerShell. Решила запустить. [Закадровый смех] Я не понимаю, зачем нужен скриптовый язык, который без танцев с бубном и чтения хелпа ничего не запускает. Тем более, что рядом находится тот же VBScript, которому эти танцы не нужны.

Linda-chan

Неожиданно забыла, как в VBScript разделяются параметры при вызове функции =_= Вроде бы запятой, но и пробел вполне логичен, нет?

Linda-chan

Бугага. оказывается, происходит следующее. После попытки перечислить объекты, возвращаемые запросом к WMI, устанавливается код ошибки, но самой ошибки не происходит. Иными словами, «On Error GoTo hError» не срабатывает, переход на метку не происходит. Но если сделать «Err.Number», то это свойство оказывается ненулевым (438, «Object doesn't support this property or method»). Вот тут и срабатывает обработчик ошибок. Если там же сделать что-то вроде «Err.Raise 51», то программа реально упадёт с сообщением от рантайма. В самом VB6 это случается, если, скажем, в какой-то функции перехватить ошибку, но не сделать Err.Clear. В таком случае код ошибки будет виден снаружи с тем же эффектом. Но, как правило, это не проблема, поскольку код ошибки снаружи проверяют только если она гарантировано передаётся наружу (например, полностью отключается перехват, либо после перехвата делают «Err.Raise» с новыми значениями), а если всё остаётся внутри, то и снаружи это не интересно. Вооот. Если не проверять код, то дальше WMI выдаёт информацию, но всё с теми же проблемами, с которыми я столкнулась ранее. Мне не понятно только одно: почему оно вдруг поломалось и даже после перезагрузки работает так и дальше.

Linda-chan

Похоже, проблема в WMI под Вайном. До обращений к нему обработка ошибок идёт в VB6 проге нормально. После – сходит с ума.

Linda-chan

Происходит что-то странное. Теперь, при возникновении необработанной ошибки в VB6 программе под Вайном, рантайм выдаёт сообщение об ошибке и спокойно продолжает выполнение. Раньше оно хотя бы падало совсем, а теперь вот такие чудеса OO

Linda-chan

Продолжаю атаковать WMI в Вайне. Только что всё сломалось, и класс Win32_NetworkAdapterConfiguration вообще перестал что-либо возвращать. Но это ладно. Выяснилось, что у меня в коде срабатывает обработчик ошибки, хотя для отладки я закоментировала обработку ошибок (то самое «On Error Resume Next»). Нигде выше ничего подобного нет, но программа не падает с сообщением от рантайма. Решила вписать «On Error GoTo 0», тоесть принудительно отключить обработку ошибок, всё начало падать, как и должно. Я не знаю, кто виноват, но в VB6 прогах в Вайне включен пропуск ошибок с самого начала, что явно не то, что ожидается.

Linda-chan

WMI в Вайне – это что-то с чем-то! Прямо сейчас я пытаюсь приспособить работающий под виндой код к работе под вайном. Проблема настигла меня при работе с классом Win32_NetworkAdapterConfiguration. Некоторых свойств в Вайне нет, некоторые свойства возвращают не массивы строк, а массивы, в каждом элементе которого содержатся массив строк. При чём, судя по всему, это одинаковые массивы. Зачем? Почему? Нет ответа...

Linda-chan

Самое страшное, что я видела в программировании – это когда один чувак читал код, переводя на русский язык всё встреченное и осмысливая полученное.

Linda-chan

Гуглю, как использовать CommandLineToArgvW(). Натыкаюсь на статью Рэймонда Чена. Понимаю, что вечер будет томным =_=

Linda-chan

FB заставил вспомнить богомерзкие Common и Shared == А ещё меня задолбало обязательное Declare во всех модулях при том, что Public и Private в объявлении функций и так прекрасно работают ==

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.