В каком объекте можно хранить большое количество текста?
Я планирую приложение Seaside для хранения текста, например, до 5 МБ. Какой объект лучше для этого?
Я также хотел бы сделать несколько итераций над этим текстом.
Спасибо Винс
Редактировать: Спасибо за ваши ответы до сих пор. Этот файл представляет собой файл CSV, генерация которого занимает около 40 минут из устаревшей финансовой системы, поэтому его необходимо предварительно сгенерировать и сохранить. Каждая строка - это запись клиента, и мне нужно вытащить каждую из них и использовать значения по мере того, как клиент входит в систему. Доступ клиента непредсказуем, и взаимодействие с унаследованной системой для генерации каждой строки на лету является последним средством.
4 ответа
Учитывая, что генерация файла занимает столько времени и что вам потребуется более или менее произвольный доступ к файлу позже, я бы предпочел выполнить синтаксический анализ файла и впоследствии сохранить структурированные данные в памяти.
На Squeaksource есть проект CSV Parser, который вы можете использовать. Это создаст структурированное дерево объектов из записей CSV, которые вы можете использовать.
Используйте внешний текстовый файл и некоторый экземпляр определенного класса в качестве представления этого файла. Используйте oop объекта в качестве имени файла.
Просто используйте коллекцию клиентов и заполните ее из CSV, как сказал Йохан. В зависимости от ваших потребностей доступа вы можете использовать словарь или OrderedCollection для его хранения.
5 мег это ничего. Не беспокойся об этом.
Если вы не можете преобразовать эти CSV-записи в объекты (после их разбора и создания экземпляров), тогда коллекция строк или даже потоки будут в порядке.
Если вам нужен поиск по ключу, то Dictionary или LookupTable сделает эту работу.
У меня было 100 мегабайт текстовых данных в памяти (1 миллион строк), и я даже без проблем сохранил изображение (сохранение изображения).
С уважением.