Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2010, 08:47   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию StrLenLimit?

Что из себя представляет, что она делает StrLenLimit?
VintProg вне форума Ответить с цитированием
Старый 04.06.2010, 08:50   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А где ты ее взял? Наведи на нее курсор, зажимай CTRL и кликай на нее .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.06.2010, 08:50   #3
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

Судя по названию, функция ограничивает длину строки.. А ты где ее выкопал (я не нашел такой)?
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 04.06.2010, 08:51   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Возможно это обертка над SetLength
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.06.2010, 09:02   #5
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

В SysUtils
:
Код:
// StrLenLimit:  Scan Src for a null terminator up to MaxLen bytes
function StrLenLimit(Src: PChar; MaxLen: Cardinal): Cardinal;
begin
  if Src = nil then
  begin
    Result := 0;
    Exit;
  end;
  Result := MaxLen;
  while (Src^ <> #0) and (Result > 0) do
  begin
    Inc(Src);
    Dec(Result);
  end;
  Result := MaxLen - Result;
end;
VintProg вне форума Ответить с цитированием
Старый 04.06.2010, 09:07   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ищет в потоке символов размером MaxLen терминальный символ #0. Раньше для старых строк нижнюю границу определяли нулем на конце. Сейчас для строки имеется определенное поле, указывающее ее размер.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.06.2010, 09:08   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Судя по коду эта функа вычисляет позицию первого символа #0 в строке.
Зачем она тебе понадобилась? Судя по всему она для внутреннего использования.
Цитата:
Сейчас для строки имеется определенное поле, указывающее ее размер.
Наоборот. Раньше в классическом паскале как раз было поле, содержащее длину строки, а сейчас (В Делфи) строка ASCIIZ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2010, 09:10   #8
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Иногда чужой код разбирать тяжело!
VintProg вне форума Ответить с цитированием
Старый 04.06.2010, 09:11   #9
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Наоборот. Раньше в классическом паскале как раз было поле, содержащее длину строки, а сейчас (В Делфи) строка ASCIIZ.
Разве? А почему же так быстро определяется размер длинных строк?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.06.2010, 09:21   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Utkin
Потому что в Делфи String самый хитрый тип
Компилятор может его компилировать с оптимизацией в зависимости от того как с ним работают. Поверь мне дзенить Строки Делфи весьма увлекательно - каждый раз что-нить новое найти мона
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц