| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > CString |
| Автор: Dray 26.12.2004, 18:44 |
| Есть ли у CString предел по размеру (сколько можно записать символов). И если ограничение существует, как примерно можно работать с текстовыми данными больших размеров? |
| Автор: bel_nikita 26.12.2004, 18:53 |
| А сколько требуется? Я думаю, что не будет. Сам не очнь юзаю CString, пользую std::string И вам советую |
| Автор: Coocky 26.12.2004, 22:27 |
| Нет ограничей...По крайней мере я текст загружал 20 Мб,в переменую текстового поля ,как стринг |
| Автор: En_t_end 4.1.2005, 12:04 |
| "загружал 20 Мб" Интересно, как я понимаю все переменные хранят свои значения в памяти, значит 20 мб. в оперативе ??? или как ??? --- экзэпшены не мучают ? |
| Автор: chipset 4.1.2005, 14:29 | ||
А что странного? 20 мб данных это относительно немного... |
| Автор: sergejzr 4.1.2005, 14:36 | ||||
Размер CString ограничен оперативной памятью + файл подкачки.
Разве что на 386-ом с 4 МБ оперативки
Именно! |
| Автор: En_t_end 4.1.2005, 17:11 |
| "Именно! Склько есть оперативки,столько и можем хранить Ж) " Ну тыды 1.смотрим сколько виртуальной и физ. памяти; 2.выделяем под переменную на 2 байта больше Получаем экзэпшен ЗЫ Dray, ты наверное делаешь текстовой редактор, дык вот фаровская фича f3 с этим справляется лучше всех... не знаю как, но память при просмотре даже !!! гиговых файлов !!! не расходуется ... и шустро смотрит однако... |
| Автор: chipset 4.1.2005, 17:12 | ||
Подгружается только та часть которую ты просматриваешь.. ИМХО, я не знаю как они точно сделали... |
| Автор: En_t_end 4.1.2005, 17:15 |
| "Подгружается только та часть которую ты просматриваешь.." Скорее всего прямо страницами по 80 строк... Добавлено @ 17:16 ALL Попробуйте открыть блокнотом более 20 мегов, винды вешаются |
| Автор: AntonSaburov 4.1.2005, 18:29 |
| По логике может быть до 2 Гигов. Но если речь идет о таких порядках, то надо думать над другим механизмом. Если же размер не будет превышать нескольких десятков мегабайт - то не забивай себе голову. |
| Автор: Dray 4.1.2005, 21:47 | ||||
Боюсь, что текст может быть действительно большим. |
| Автор: En_t_end 5.1.2005, 15:18 |
| Dray "Можно по подробнее." Тут уже вопрос скорее алгоритмический... короче оффтоп... Если бы я столкнулся с подобной проблемой, то взял бы две переменные типа Систринг, одна входной буфер. Далее перед присваением переменной буфера соответсвенного значения из файла(текста), посмотрел бы размер файла, если он окажется больше допустим 5 мегабайт(если меньше, либо равно, то просто присваеваем основной переменной), если больше, то записываем в буфер из файла n-строк(определяешь методом тыка или эксперимента), далее присваеваем значение буфера нормальной переменной, как только юзверь дойдёт до предпоследней строки отчищаем норм. переменную, а в буфер ложим следующую порцию, опять присваеваем, и т.д до конца файла...имхо... |
| Автор: En_t_end 6.1.2005, 07:23 |
| Да, забыл, работаешь с сообщениями от слайдера, чтобы определить, дошёл ли юзверь до границы... |
| Автор: Dray 6.1.2005, 16:59 |
| Спасибо En_t_end |