Руслан Пархуць писал(а):
I>C буде ще до останнього рядка пiсля iдентифiкатора %Start, i вiдповiдно наступнi рядки до перевiрки значення будуть викликати помилку.
це неправда
бо щоб
$I було більше за
$C скрипт по циклу має повернутися на мітку
%Start. А він цього не може зробити, оскільки єдиною умовою повернення є
@if $I<$C. Як тільки
$I буде дорівнювати
$C, то скрипт зупинить роботу і більше на мітку
%Start не піде.
Руслан Пархуць писал(а):
Я, взагалi, теж за освiтою iнженер-землевпорядник, i вчився писати на мовi GW BASIC, потiм сpp, delphi, js i т.д. I коли менi роблять слушнi зауваження (на форумах, чи деiнде), я до них прислухаюся i роблю якiсь висновки. А Вам, якщо щось напишеш, це сприймається, як образа. Перепрошую, якщо щось не так я сказав чи написав, але може комусь iншому це знадобиться.
Бо ви:
а) чіпляєтеся до всяких дурниць;
б) намагаєтеся вказати іншим, що вони тупіші за вас
Вчіться поважати думку інших. Не все має бути завжди по-вашому.
Скрипт писався нашвидкоруч. Я йоно навіть не перевіряв, як працює. Допустив невелику технічну помилку. Але той, кому він адресувався сам її виправив. І не було ніяких проблем. Аж тут знайшлися ви, такий розумний і вирішили блиснути своїм розумом.
В цьому варіанті скрипт працюватиме нормально без ваших $While:
@Text[1].Load Filename
$D=@Dialog.Ask Що шукати?
$C=@Text[1].Count
@if $C=0 then @Break Текстовий файл порожній
$I=0
%Start
$I=$I+1
$Line=@Text[1].Line[$I]
$L=@Calc Pos("$D","$Line")
@if $L>0 then @Break Знайдено в рядку $I
@if $I<$C then @Goto %Start
@Break Не знайдено