Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > [].Length int32 в int64


Автор: uranpro 13.2.2010, 01:01
добрый вечер!
есть проблема, делаю массив байт:
Код

var data = new byte[10];

data.length имеет тип int32, мне этого мало, нужно как минимум int64, как быть ?

Автор: Экскалупатор 13.2.2010, 02:06
uranpro, написать свой класс для массива.

можно сделать массив массивов. может тогда хватит?

а вообще мне кажется что можно получить OutOfMemory если сделать такой массив с колличеством int64.MaxValue. 

да. сейчас попробовал: 
Код

byte[] b = new byte[Int32.MaxValue];

и сразу получил:
Exception of type 'System.OutOfMemoryException' was thrown.

Автор: uranpro 13.2.2010, 03:15
Экскалупатор, и у меня тоже =( можно маленький пример с классом ?)

Автор: Экскалупатор 13.2.2010, 11:26
uranpro, да и с классом будет тоже самое. ведь реально элементов тоже будет много(массив байтов размером int.MaxValue = 2147483647 байт или ~ 2 гига, а тебе нужно еще больше). надо как то по другому. через файл например. в файле хранить и читать блоками по несколько миллионов, или параллельно читать и обрабатывать, обработанные выбрасывать. для этого можно сделать что то вроде очереди.

Автор: uranpro 13.2.2010, 12:30
Экскалупатор, немного путаешь, не 2 гига, а 20 метров... через файлы не получится, у меня серв на уровне сокета. 
Буду делить файл и передавать по 19 метров с номером части и кол-вом частей

Добавлено через 1 минуту и 1 секунду
через FileStream читать блоки

Автор: Экскалупатор 13.2.2010, 12:35
2 147 483 647 байт = 2 097 151.99 Кб = 2 047.99 Мб ~2 Гб

или я где то не правильно разделил?

Автор: uranpro 13.2.2010, 14:05
Экскалупатор, хм.. точно, я все напутал =( но почему тогда я не могу передать файл в 1.5гб? сейчас еще разок проверю...

Добавлено через 12 минут и 22 секунды
ошибка в ZLib: There is not enough room in the output buffer.
поковыряю

Автор: uranpro 13.2.2010, 14:27
даже 60мб не могу пеедать =(

Автор: nmn 14.2.2010, 22:01
1,5 гб в память ради передачи файла?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)