Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1322937752
Андрей Билан
2011-12-03 22:42
2012.04.15
Перевод проекта с Delphi 5 на Delphi XE


15-1323694887
aka
2011-12-12 17:01
2012.04.15
Скорость выполнения алгоритма


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


2-1324669937
Drowsy
2011-12-23 23:52
2012.04.15
FireBird 2.5, IBExpert. Ver. 2011.03.04


2-1324499887
Антоха_М
2011-12-22 00:38
2012.04.15
Как видоизменить StringGrid?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский