| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > [].Length int32 в int64 |
| Автор: uranpro 13.2.2010, 01:01 | ||
| добрый вечер! есть проблема, делаю массив байт:
data.length имеет тип int32, мне этого мало, нужно как минимум int64, как быть ? |
| Автор: Экскалупатор 13.2.2010, 02:06 | ||
| uranpro, написать свой класс для массива. можно сделать массив массивов. может тогда хватит? а вообще мне кажется что можно получить OutOfMemory если сделать такой массив с колличеством int64.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 гб в память ради передачи файла? |