fendak писал(а):
Тут друга мітка %PochatokSSh3 не грала абсолютно ніякої ролі. І так би собі й було надалі, але ні, бо комусь це стало дуже заважати. Просто при створенні скрипту вийшло таке упущення.
Правильно. Тільки не "стало заважати", а таки конкретно дошкуляло: сам не один раз мусив аналізувати тисячі рядків лог-файла (ще не вмерла надія на режим відлагодження скриптів зі ScriptDebugger=1 в константах), щоб виловити помилку логіки алгоритму. Дублі міток спричиняли переходи не на ту гілку, на яку треба. Але в мене не було "порожніх" міток! Якщо була мітка - були й команди, що виконувались тоді, коли за логікою не повинні були виконуватись.
fendak писал(а):
Якби зразу програма це виявляла якось - то ніяких проблем би не було. Але програма ж зразу це не виявляла. А тепер раптом розробникам захотілося, щоб вона це виявляла. Не гарно получається просто. Я це перероблю. Потрачу час, але перероблю усім. Але просто так не робиться.
Добре, коли людина думає не лише про себе. Погодьтесь нарешті, це полегшить роботу з розробкою іншим, хто також пише скрипти. І надалі, у нових скриптах, забезпечить відсутність помилок логіки алгоритму. Почитайте, будь-ласка, за посиланням у пості вище - це критичні помилки, які важко виявити.
fendak писал(а):
Я не вчився на програміста, а самоучка. Тому, роблячи скрипти, виходжу тільки з того, щоб вони працювали. Тестую їх на різноманітних випадках. І досі вони усі працювали. А те, що в коді вийшла ось така чисто технічна помилка - не побачив, бо вона не заважала. А перевіряти код на те, як він грамотно написаний з точки зору підручників з програмування - це не моє. Та й на скільки знаю, щоб писати скрипти не обов'язково бути великим програмістом. Для цього скрипти в програмі і передбачені, щоб можна спрощено зробити те, що потрібно.
Все правильно, Миколо. І я також не вчився на програміста: складання скрипта - це ж не справа рук навіть середнього рівня програміста. І не треба бути класним програмістом, щоб зрозуміти: скрипт - це послідовність виконання команд. Послідовність ця визначається у скрипті переходами на мітки, і якщо є дві чи більше міток з однаковою назвою - то і послідовність виконання є помилковою (або одна гілка "мертва", а значить - сміття). То байка, якщо сміття закоментоване символом ";", але ж для помпутера символ "%" щось таки має означати? Чи у вашому випадку - нехай не означає? Так означає? Чи не означає? Для скрипта "%" - спеціальний символ переходу на таку-то послідовність дій, незалежно від того програміст перед компом, чи землевпорядник!
fendak писал(а):
Я здогадуюся, чому для вас Voha, цей плюс такий жирний. То й користуйтеся вашим плюсом. А для мене це більше мінус, думаю, як і для багатьох інших користувачів.
Так можна ж почути програмістів, а поки - що ми маємо:
- для прикладу в ліспроекті: беремось складати цифрову карту, а не хочемо розібратись із типами об'єктів цієї карти, бо це вже бач ГІС (вища наука);
- беремося складати послідовність - а не хочемо робити це послідовно, бо це вже бач супер високого рівня "програмування".
Послідовність ця називається алгоритмом, а слово "алгоритм" ще в школі вчать, і до програмування вищого рівня від алгоритму - як "до неба рачки". Я жодним чином не беруся когось оцінювати та порівнювати. З ким мені ще про скрипти? Мабуть карантин впливає.
fendak писал(а):
...А то в половини користувачів видає помилку про дублювання міток, а в половини скрипт просто ніяк не реагує на запуск. І думай-гадай, що з ним не так. Можна ж було зробити, щоб хоч нормально інформувало користувачів, в чому причина того, що скрипт не запускається. Але кому це потрібно.
Те, що скрипт не запускається, лише підтверджує серйозність вашої помилки. А як цей ящик по вашому має виконати послідовність, якщо вона не визначена? Вимушений ще раз констатувати факт:
інструментальний скрипт, в якому є дублі міток, не запускається. Функціональний скрипт, що містить дублі міток, будучи викликаний з інструментального скрипта, дає помилку виконання Duplicate label з посиланням на викликаючий скрипт.Думаю нам дискусію слід припинити, поза як поняття алгоритму (послідовності виконання операцій) ні вам, ні мені, ні будь-кому іншому не змінити. Як на мене - гарна була дискусія, предметна.