WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Ограничение CString

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Ограничение CString
Lord_DEMON опубликован 25-10-2001 16:58 MSK   Click Here to See the Profile for Lord_DEMON   Click Here to Email Lord_DEMON  
Народ, подскажите, кто знает, какое ограничение на максимальный размер у CString??? а то не дай бог когда нить это аукнется мне...
FIV2 опубликован 25-10-2001 17:17 MSK     Click Here to See the Profile for FIV2  Click Here to Email FIV2     
U moego kolega byla problema okolo 100k
on delal modul dlq html
prechati

Lord_DEMON опубликован 25-10-2001 17:28 MSK     Click Here to See the Profile for Lord_DEMON  Click Here to Email Lord_DEMON     
... плохо :(((
а что нить другое есть ??
а то у меня XML файл, который я парсю может до полуметра вырости...
HOMO_PROGRAMMATIS опубликован 25-10-2001 17:33 MSK     Click Here to See the Profile for HOMO_PROGRAMMATIS  Click Here to Email HOMO_PROGRAMMATIS     
Вообще говоря, ограничений быть не должно. Там выделяется буфер и CString - по сути указатель на него, просто умный.
Если ты не веришь - попробуй просто запихнуть туда эти полметра.
purpe опубликован 25-10-2001 17:51 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
я тоже голосую за то, что нет ограничений. Там действительно очень умный распределитель памяти.

я этот класс разбирал по косточкам и создавал на его основе свой, чтобы его можно было использовать в чистом API - ограничений не было замечено.

Lord_DEMON опубликован 25-10-2001 17:53 MSK     Click Here to See the Profile for Lord_DEMON  Click Here to Email Lord_DEMON     
Thanks! завтра проверю :) рабочий день закончен :)
server_mouse опубликован 25-10-2001 17:58 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Утверждаю и готов поспорить, что ограничение CString -- 4Гектара.
FIV2 опубликован 25-10-2001 18:08 MSK     Click Here to See the Profile for FIV2  Click Here to Email FIV2     
Hahhahahah :)
q sam nabludal kak etot klas vav Winodws 2000k
uvilecheval size of process
posle nkeotorogo vremni zamerzal
m_fox опубликован 25-10-2001 18:33 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
server_mouse, с тебя пиво :)
ты не прав.
Во-первых 4 гига (не на серверах) не получится (не будем учитывать уже занятую память).
Чтобы получить 4гб CString, надо взять еще 4гб, как исходный буфер.
Если заполнять маленькими порциями, то CString делает realloc т.е. не удаляя старую, выделяет новую память...
:)


>server_mouse
>Утверждаю и готов поспорить, что ограничение CString -- 4Гектара.

Lord_DEMON опубликован 26-10-2001 12:26 MSK     Click Here to See the Profile for Lord_DEMON  Click Here to Email Lord_DEMON     
:)))) Ну в принципе для меня самое главное, что там счетчики 32 разрядные а не 16, а все остальное - ерунда :)
server_mouse опубликован 26-10-2001 11:43 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
2m_fox: Ежели ты динамически распределяешь память, то в 386 на каждый дескриптор (ну пости сегмент) тебе доступно 4Г. Так почему CString не может их распределить?
Lord_DEMON опубликован 26-10-2001 13:55 MSK     Click Here to See the Profile for Lord_DEMON  Click Here to Email Lord_DEMON     
Всем Thanks!
Успешно засунул 1 метр! (пройдя кучу собственных ошибок :))
m_fox опубликован 26-10-2001 19:07 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
2server_mouse
Потому что Windows (за исключением Win2k Advanced Server) поддерживают 4гб в системе (а не на каждый процесс)
Поэтому гипотетически CString может быть только 2 гб получая из другого буфера.
Но изучая в исходниках этот класс, я понял, что немного ошибся. У этого класса есть метод, который выделяет n байт и возвращает указатель. Т.е. можно использовать этот указатель для заполнения строки. Тогда можно сделать и 4 гб. Так что пиво с меня... :)
И кстати, у CString нет счетчика длины. GetLength работает как strlen()
HOMO_PROGRAMMATIS опубликован 27-10-2001 09:05 MSK     Click Here to See the Profile for HOMO_PROGRAMMATIS  Click Here to Email HOMO_PROGRAMMATIS     
Я думаю, стоит создать производный класс с счётчиком длины - поднимите руку те, кто хочет каждый раз ждать strlen при 1-2 гектарах :-)
server_mouse опубликован 27-10-2001 09:50 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
2m_fox: Я с удовольствием проставлю тебе пиво. В любом случае. Пока бери виртуальное:


<<<<<<<<<<<<<<<<< ПИВО 1.5л >>>>>>>>>>>>>>>>

migel опубликован 27-10-2001 17:59 MSK     Click Here to See the Profile for migel  Click Here to Email migel     
Это как это нет длины?????
а CStringData на что?
да и в исходниках:
_AFX_INLINE int CString::GetLength() const
{ return GetData()->nDataLength; }
Так штааа - L2SL :-)

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.