Форум: "Начинающим";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.003 c