Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.15;
Скачать: CL | DM;

Вниз

StringList - есть ли ограничения на размер массива?   Найти похожие ветки 

 
igorium ©   (2011-12-24 14:48) [0]

Всем привет.
Нужно сделать огромный массив из Strings, где будут храниться пути ко всем нужным файлам.
Количество файлов может быть огромным и 10"000 и 100"000.
Может даже несколько сотен тысяч файлов.
Соответственно вопрос - есть ли ограничения на использования больших массивов?

И сколько памяти этот массив будет жрать?
Если я правильно понял, то string ест 1байт на 1символ.
То если прикинуть путь 1 файла занимает ~100символов = 100байт.
100"000 файлов * 100 байт = 10"000"000 байт = 10 Мбайт.
Я правильно посчитал?


 
Anatoly Podgoretsky ©   (2011-12-24 14:52) [1]

> igorium  (24.12.2011 14:48:00)  [0]

16 (12) * N + N * SizeOf(Char)


 
igorium ©   (2011-12-24 15:04) [2]


> Anatoly Podgoretsky ©   (24.12.11 14:52) [1]
> 16 (12) * N + N * SizeOf(Char)

16(12) - Это 16 или 12 ?
Размер Chara ~1байт.
Итого размер массива = N*(16+1) = 17*N байт = 17 * 100"000 файлов * 100 байт = 170 Мбайт.

Так?
И ограничение размера массива только в том, что хочу ли я такую прорву памяти занимать?


 
Jeer ©   (2011-12-24 15:34) [3]

И зачем тебе TStringList ?


 
Dennis I. Komarov ©   (2011-12-24 15:41) [4]


> Если я правильно понял, то string ест 1байт на 1символ.

далеко не всегда, если ANSI то да...


 
igorium ©   (2011-12-24 15:43) [5]


> Jeer ©   (24.12.11 15:34) [3]
> И зачем тебе TStringList ?


А в чем хранить массив из Strings ?
Каждый элемент массива выглядит так:
"c:\моя_папка\моя_подпапка\...\моя_подпапка\мой_файл.jpg"


 
Anatoly Podgoretsky ©   (2011-12-24 15:58) [6]


> А в чем хранить массив из Strings ?

Не надо массив из Strings, тем более, что Strings не имеет средств хранения.
А надо массив из String


 
igorium ©   (2011-12-24 16:37) [7]


> Anatoly Podgoretsky ©   (24.12.11 15:58) [6]
> Не надо массив из Strings, тем более, что Strings не имеет
> средств хранения.
> А надо массив из String


Описался я.
Я имел в виду String"и.
Так в итоге я правильно посчитал?


 
Anatoly Podgoretsky ©   (2011-12-24 16:47) [8]

> igorium  (24.12.2011 16:37:07)  [7]

Неправильно. Размер CHAR не фиксирован, и составляет от 1 до 4 байт в общем


 
igorium ©   (2011-12-24 17:02) [9]

Спасибо.
Получается в худшем случае размер = 170Мб*4 = 680 Мбайт.
Это кошмар.
Придется идти другим путем :(


 
знайка   (2011-12-24 17:08) [10]

А для чего сразу все в памяти держать?


 
igorium ©   (2011-12-24 17:12) [11]

А как иначе?
Идет поиск по все каталогам, и если находится файл *.jpg, то этот файл открывается и считывается информация.
Файлов ОЧЕНЬ много.
Соответственно программа работает долго - от 30 сек до нескольких минут.
Поэтому появилась идея создать ПрогрессБар.
Но для этого надо сначала пройти по все каталогам, найти файлы, но не обрабатывать их, а сохранить пути, чтобы 2-й раз не искать.
А затем уже включить ПрогрессБар =  (i / CountALL).


 
Anatoly Podgoretsky ©   (2011-12-24 17:26) [12]

> igorium  (24.12.2011 17:12:11)  [11]

Утилиты Виндоус прекрасно обходятся без этого. А окрыть 100 000 графических
файлов наверно за это время успеешь состариться, тут уж не до Прогресса


 
Dennis I. Komarov ©   (2011-12-24 17:54) [13]


> Поэтому появилась идея создать ПрогрессБар.

Очереной XYZ, но ведь нет, мы злые...
З.Ы. За то время пока список будет формироваться, сколько файлов уже могуть и покинуть сей FS, а новые появиться...
РЭЗУМЭ: Идея бредовая...


 
Sha ©   (2011-12-24 19:06) [14]

может, скажете еще, что с текстовыми файлами можно работать без помощи TMemo?



Страницы: 1 вся ветка

Текущий архив: 2012.04.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.008 c
8-1223290961
BREND
2008-10-06 15:02
2012.04.15
Обработка видеосигнала


1-1291528318
Дмитрий С
2010-12-05 08:51
2012.04.15
ObjComAuto.TObjectDispatch и методы с 3+ вариант-аргументами.


4-1255976942
ratatui
2009-10-19 22:29
2012.04.15
Как решить проблему мелькания у компонентов? (Edit)


15-1323808202
Юрий
2011-12-14 00:30
2012.04.15
С днем рождения ! 14 декабря 2011 среда


1-1291689448
P
2010-12-07 05:37
2012.04.15
Высота итема ListView