![]() |
максимальный размер String
вопрос, собственно, в этом: есть ли ограничение на максимальный размер String? например строку размером в 280Мб не создаёт.
|
280мб - это жесть :) делите строку на несколько и клейте их потом, где надо.
|
280 МБ в стринге? Мсье знает толк в извращениях.
|
собственно мне надо такое: грузится в bytearray файл текстовый. его надо порезать на строки. я предполагал делать так:
Код AS3:
|
Цитата:
Зачем такие строки, если не секрет |
Цитата:
|
Грузить по частям. Да и вообще зачем именно одна строка? Во-первых вся строка в 280 метров - жесть, да еще и операция split - туда же. Конкретно задача какая? Что загрузить это понятно. Вопрос в другом: для чего именно это нужно и именно в таком представлении (1 строка - 1 массив)?
|
я же описал мою задачу:
Цитата:
|
Если я не ошибаюсь, во флеш плеере вшито ограничение на размер загружаемого файла в 100 мегабайт.
|
ошибаетесь. файл в 280мб успешно грузится. уточню: приложение AIR
|
По частям грузите тогда, раз нужно. 1 массив из хреновой тучи элементов не самый удачный подход.
|
Цитата:
Памяти не напасетесь. Не говоря уже о том, как это будет работать. |
критиковать "предполагаемый" подход ни к чему. то, что это не работает я уже написал в первом посте.
просьба была - посоветовать, как решить эту задачу. |
Что значит критиковать не надо, если подход неверен с самого начала. Вы скажите для чего это нужно? Еще раз повторю - загрузить нужно, мы это поняли. Что вы будете делать с этим массивом, ведь в него вы даже (если загрузите строку) не переведете эту самую строку методом split. Вы просто не дождетесь.
Искать фориком по массиву? - труба. Чтобы посоветовать решение - нужна задача. |
про 100 мегабайт - это гарантированный от Адоби аплоад через FileReference ...
по сабжу - а зачем вам столько много и сразу? |
повторюсь опять.
нужно загрузить текстовый файл со строками. получить эти строки в массив. и работать с ними так как заблагорассудится. |
Цитата:
|
опять не успел.)
Вам не хватит памяти на обработку такой структуры |
Не знаю, откуда столько текста, но может быть вы посмотрите в сторону БД? Каждая строка имеет свой индекс, загружаете только нужные.
|
Не вижу проблемы. Берёте и ищете по массиву байты который обозначают перевод строки, там есть такое. Определяете диапазон, переставляете указатель на начало этого диапазона и читаете readUTFBytes(length:uint):String. Возможно это будет падать, тогда попробуйте байты для строки скопировать в другой временный bytearray;
|
Грузите через URLStream. Читайте байты в ByteArray по мере загрузки. Проверяйте каждый загруженный байт на равенство \n. Как только этот байт получен - все следующие байты начать писать в новый ByteArray. Когда надо будет выводить на экран - будет понятно, когда надо раскодировать очередной ByteArray - раскодируем и выводим
|
В итоге конечно потребуется гиг памяти, т.к. в строке utf , но работать должно.
|
Ну есть же в AIR FileStream читайте из него частями, по сколько-то байт за раз используя openAsync + readAhead. Так любая другая программа работает, никто не будет пихать в память солько много информации. Это все равно, что на обычном мониторе пытаться показать картинку 10240х7680 пикселов (в смысле, где-то в 100 раз больше, чем физически можно показать).
|
| Часовой пояс GMT +4, время: 08:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.