while pc^<>#00 do Inc(pc); //ищем конец строки
Все знают, что когда перебираешь дельфийские строки, нужно останавливаться, когда индекс превысит длину строки:while (i<Length(s)) and (s[i]=' ') do Inc(i); //пропускаем пробелы
Все знают, что у дельфийских строк в конце всё равно ноль. 74 00 65 00 73 00 74 00 00 00
Но не всем и не сразу приходит в голову, что длину дельфийской строки тоже часто можно не проверять!Второй пример можно записать так:
while s[i]=' ' do Inc(i); //пропускаем пробелы
В конце строки ноль, а ноль - это не пробел, поэтому цикл сам собой прервётся.Где надо быть осторожным - так это при промотке строки назад. В начале строки нуля нет:
while (i>0) and (s[i]=' ') do Dec(i); //пропускаем пробелы в обратную сторону