Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > CString


Автор: Dray 26.12.2004, 18:44
Есть ли у CString предел по размеру (сколько можно записать символов).
И если ограничение существует, как примерно можно работать с текстовыми данными больших размеров? smile

Автор: bel_nikita 26.12.2004, 18:53
А сколько требуется? smile
Я думаю, что не будет. Сам не очнь юзаю CString, пользую std::string
И вам советую smile

Автор: Coocky 26.12.2004, 22:27
Нет ограничей...По крайней мере я текст загружал 20 Мб,в переменую текстового поля ,как стринг smile

Автор: En_t_end 4.1.2005, 12:04
"загружал 20 Мб"
Интересно, как я понимаю все переменные хранят свои значения в памяти, значит 20 мб. в оперативе ??? или как ??? --- экзэпшены не мучают ? smile

Автор: chipset 4.1.2005, 14:29
Цитата(En_t_end @ 4.1.2005, 01:04)
Интересно, как я понимаю все переменные хранят свои значения в памяти, значит 20 мб. в оперативе ??? или как ??? --- экзэпшены не мучают ? smile

А что странного? smile
20 мб данных это относительно немного...

Автор: sergejzr 4.1.2005, 14:36
Размер CString ограничен оперативной памятью + файл подкачки.

Цитата(En_t_end @ 4.1.2005, 11:04)
20 мб. в оперативе ??? или как ??? --- экзэпшены не мучают ? smile

Разве что на 386-ом с 4 МБ оперативки smile


Цитата(chipset @ 4.1.2005, 13:29)
20 мб данных это относительно немного...

Именно! smile Склько есть оперативки,столько и можем хранить Ж)

Автор: En_t_end 4.1.2005, 17:11
"Именно! Склько есть оперативки,столько и можем хранить Ж) "
Ну тыды smile, сделаем плохую программу smile :
1.смотрим сколько виртуальной и физ. памяти;
2.выделяем под переменную на 2 байта больше smile
Получаем экзэпшен smile

ЗЫ Dray, ты наверное делаешь текстовой редактор, дык вот фаровская фича f3 с этим справляется лучше всех... не знаю как, но память при просмотре даже !!! гиговых файлов !!! не расходуется ... и шустро смотрит однако...

Автор: chipset 4.1.2005, 17:12
Цитата(En_t_end @ 4.1.2005, 06:11)
не знаю как, но память при просмотре даже !!! гиговых файлов !!! не расходуется ... и шустро смотрит однако...

Подгружается только та часть которую ты просматриваешь..
ИМХО, я не знаю как они точно сделали... smile

Автор: En_t_end 4.1.2005, 17:15
"Подгружается только та часть которую ты просматриваешь.."
Скорее всего прямо страницами по 80 строк...
Добавлено @ 17:16
ALL Попробуйте открыть блокнотом более 20 мегов, винды вешаются smile smile smile

Автор: AntonSaburov 4.1.2005, 18:29
По логике может быть до 2 Гигов. Но если речь идет о таких порядках, то надо думать над другим механизмом. Если же размер не будет превышать нескольких десятков мегабайт - то не забивай себе голову.

Автор: Dray 4.1.2005, 21:47
Цитата(En_t_end @ 4.1.2005, 17:11)
ЗЫ Dray, ты наверное делаешь текстовой редактор, дык вот фаровская фича f3 с этим справляется лучше всех... не знаю как, но память при просмотре даже !!! гиговых файлов !!! не расходуется ... и шустро смотрит однако...

smile Можно по подробнее.
Цитата(AntonSaburov @ 4.1.2005, 18:29)
По логике может быть до 2 Гигов. Но если речь идет о таких порядках, то надо думать над другим механизмом. Если же размер не будет превышать нескольких десятков мегабайт - то не забивай себе голову.

Боюсь, что текст может быть действительно большим. smile

Автор: 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 smile

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