Vadim kyklaed, Нет, в современных стандартах размер массива может не быть константой. VLA - Variable Size Array. Возможность введенная в языки С/С++ относительно не давно.
Это как раз то что вы используете.
И хоть компилятор и проглатывает значение N=0 при определении массива, но при этом память не выделяется. У этого варианта определения массива есть свои нюансы и не всегда его нужно применять.
Csus4, Если исходников нет - запускаете приложение под дебагером ищите место где используется функция EnumWindows, ставите перед ней точку останова и курите ассемблерный код до полного просветления. Еще нужно учесть, что эта функция может использоваться в разным местах приложения и параметры могут быть разные.
youngmysteriouslight, Не знаю, что у вас там проведено, но наличие поля name в SAL и DEG говорит само за себя.
А на счет первого вопроса - как выше писал Станислав Макаров вам поможет view. view вы не должны менять, только исходную таблицу. В "нормальных" SQL серверах кэшированием view занимаются сами сервера автоматически, как работает MySQL - не знаю.
Pproger_12, Да.
Вот тут кратко о том как обновлять пакеты. Рекомендую сразу же после установки обновится.
Устанавливать дополнительные пакеты:
pacman -S <имя пакета>
Установка средств разработки:
pacman -S base-devel
Установка gcc для x32 и x64 сборок.
pacman -S mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
Так же можно установить и Qt и QtCreator непосредственно в msys:
QT5
pacman -S mingw32/mingw-w64-i686-qt5 mingw64/mingw-w64-x86_64-qt5
QT Creator
pacman -S mingw32/mingw-w64-i686-qt-creator mingw64/mingw-w64-x86_64-qt-creator
Про 168 не знал :-)
Дополню ответ: во первых действительно - стандарт, а во вторых нужны были диапазоны под приватные адреса, вот выбрали этот.
Кроме него есть и другие:
10.0.0.0/8
172.16.0.0/12
Так же есть и другие диапазоны, выделенные для других целей, из известных, например:
127.0.0.0/8
Дмитрий, && - это логическое И, а & - побитовая И.
Когда вы будете читать этот код через год, для вас может стать загадкой - "что я тут делаю битовой операцией".
Эти операции разные, работают по разному и нужны для разного, не следует использовать битовую там где нужна логическая.
Дмитрий, так как раз обе исполняются, а потом проверка - я же вынес вызов функции из if. По моему, это наиболее правильный вариант в вашем случае - не зачем городить огороды, вами предложенные, овчинка не стоит того что бы тратить на нее время.
83349 M, попробуйте запустить из cmd.exe
ConEmu использует родной cmd.exe.
п.2 проверить просто - поищите в установочном каталоге и посмотрите переменную PATH до запуска и после.
Получается тоже самое при 2-ом старте выводит !namePath!.
т.е. когда батник запускаете второй раз?
Это какая-то фигня, если честно. У меня отрабатывает сколько угодно раз, только я в начало строки с запуском codeceptjs добавил echo.
Я так понял у вас такое же поведение?
Вы батник как запускаете? из консоли? из файлового менеджера? (какого?) Из проводника?
Никогда не видел эту софтину (codeceptjs), есть предположение:
1.она добавляет путь к себе в переменную PATH, причем, видимо ставит его в начало.
2.Возможно у него в составе есть какая-то своя командная строка (cmd.exe) и после окончания работы он ее запускает.
3.В начале батника присутствует строка:
SetLocal EnableDelayedExpansion
?
Именно эта команда включает отложенное разъименование и !! вместо %%
Это всего лишь предположение, как объяснить подобное поведение по другому - я не знаю.
83349 M, ?test.js - в маске ? - это один любой символ, на сколько я понял вам нужно использовать * - несколько любых символов.
Я так и не понял: вас интересуют файлы testF\_test.js или testF\*_test.js ?
У вас маска в форе ?_test.js, а ниже в 4 set используете другой вариант.
Попробуйте вариант for из поста выше. Он должен работать.
Смысл его в том, что запускается команда
dir /s /b "%begindir%\*_test.js"
которая выводит все файл *_test.js во всех подкаталогах указанного каталога
дальше с помощью finstr "testF" - из всех выведенных dir строк оставляем только те, где присутствует "testF" и каждую из этих строк обрабатываем в цикле.
Можете по отдельности и в комбинации эти команды запустить и посмотреть вывод.
83349 M, В for нельзя передавать одновременно 2 ключа - они включают разные режимы работы и не совместимы друг с другом. см. for /?
Вам нужно заменить ваш for на что-то вроде этого:
for /f "tokens=* delims=" %%i in ('dir /s /b "%begindir%\*_test.js" ^| findstr "testF" ') do (
...
)
Восклицательные знаки не нужно экранировать - они в команду не попадут, а заменяться путем из переменной, кавычки то же не влияют на разъименование переменных. Наверное так:
run -o "{\"tests\": \"!namePath!/**/*_test.js\"}"
83349 M, Зачем все эти "палки" и кавычки?
Покажите строку, которую вы хотите получить на выходе.
!namePath\! - вы закрыли закрывающий ! слэшем, поэтому имя переменной нормально не распозналось. Вообще, по моему, тут у вас ничего экранировать ненужно.
Это как раз то что вы используете.
И хоть компилятор и проглатывает значение N=0 при определении массива, но при этом память не выделяется. У этого варианта определения массива есть свои нюансы и не всегда его нужно применять.