Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Быстро узнать размер строки


Вольдемар ©   (21.11.17 10:17

В программе ведется лог (TStringList), который периодически сохраняется на диск. Лог может стать большим, и поэтому иногда его надо чистить.

Делаю так:
 if (Length(LogList.Text) > 1000000) then
   LogList.Clear;

Есть быстрее способ узнать размер лога, чем Length?

Спасибо.


Pavia ©   (21.11.17 10:20[1]

LogList.count


Игорь Шевченко ©   (21.11.17 10:37[2]

Надписать метод TStringList.Add не предлагать ?

Я удивляюсь, какой же уровень у программистов, плинтус Эверестом кажется.


sniknik ©   (21.11.17 11:35[3]

на фиг вообще нужен такой лог, который можно прочитать/разобрать только если все хорошо, периодически, а если скажем критический сбой в программе или ее несанкционированно закрыли то лога и нет... остался в памяти порушенной памяти.


Германн ©   (22.11.17 03:20[4]


> Игорь Шевченко ©   (21.11.17 10:37) [2]
>
> Надписать метод TStringList.Add не предлагать ?
>
> Я удивляюсь, какой же уровень у программистов, плинтус Эверестом
> кажется.
>

Уровень программистов как раз "на уровне". :)
Я правда в последнее время сужу только по программистам микроконтроллеров.
Но и тут - этот вопрос явно вопрос малограмотного. Но всё же не троешника. Он пытается написать код сам.


Pavia ©   (22.11.17 06:20[5]

Ничего он писать не пытается. Это обычное тестовое задание.


icWasya ©   (22.11.17 10:00[6]

Внутри TStringList.Text из всех строк собирается одна длинная строка, что вызывает перевыделение памяти.
поэтому

int i,Len;
 Len:=0;
 for i:=0 to LogList.Count-1 do
   Len:=Len+Length(LogList[i]);

может быть быстрееж


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо