22:49

Inc(i)

Все знают, что когда перебираешь null-terminated строки, то нужно останавливаться по нулю:
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); //пропускаем пробелы в обратную сторону


@темы: Компьютеры

Комментарии
08.01.2013 в 18:40

Хватит взрывать мозг простых читателей вашего дневника.

Вот скажите лучше, как вы, программисты, правите миром?
08.01.2013 в 20:25

Гость, запускаем "mir <filename>" и правим! Потом сохраняем.
08.01.2013 в 21:24

Гость, запускаем "mir " и правим! Потом сохраняем.

То есть, у вас у каждого свой... своя... ну, короче своя штука для управления миром? Много-много копий этой штуки у каждого программиста? А как их получить? Дают вместе с дипломом или только от какого-то Главного Программиста?
08.01.2013 в 21:33

Гость, если б и давали, никто бы не взял! Программисты пользуются только тем, что сделали сами.
08.01.2013 в 21:58

А почему вы не удалите Путина?
08.01.2013 в 22:43

Гость, мы же не правим мир, мы правим миром! Это совсем другое дело.

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail