Главная страница
    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-1323607758
tj.nelson
2011-12-11 16:49
2012.04.15
помогите разобраться с StringList и memo


1-1291799940
Alexander_K
2010-12-08 12:19
2012.04.15
Уничтожение RDM


6-1255266708
zoomod
2009-10-11 17:11
2012.04.15
Как проверить наличие tcp-ip соединения WinSock


2-1324572024
Каныбек
2011-12-22 20:40
2012.04.15
Memo, сохранение


15-1323686319
alexdn
2011-12-12 14:38
2012.04.15
Настройка Outlook express





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский