
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
17.09.2003, 11:10
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Народ! Подскажите, как можно увеличить размер CString? Можно ли как-нибудь указать его явно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 11:31
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
char chData[255]="asasasa...asasasa"; CString s; strcopy(s.GetBuffer(255),chData); s.ReleaseBuffer(); или s.ReleaseBuffer(255); если не уверены, что помещённая внутрь строка будет null-terminated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 11:53
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Дело в том, что мне нужно изначально установить размер CString, а потом уже производить с ним различные операции (+, присваивание и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 12:29
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
AllocBuffer(int nLen) или AllocBeforeWrite(int nLen) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 13:46
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Даже если я пытаюсь работать изначально например с char arr[1024] - все равно массив обрезается на 255! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 14:03
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
подробнее: char chData[1024]="asasasa...asasasa"; CString s; char* chPointerToInternBuffer=s.GetBuffer(1024);//задаём размер внутреннего буффера 1024 и получаем прямой указатель на него. strcopy(chPointerToInternBuffer,chData);//копируем в него данные s.ReleaseBuffer();//сообщаем о завершении прямой работы с буффером и позволяем CString-у самому узнать длину записанной строки с помощью вызова strlen (для этого нужно быть уверенным, что строка заканчивается на 0) или s.ReleaseBuffer(1024); если не уверены, что помещённая внутрь строка будет null-terminated, то сами указываем длину скопированных данных. Но думаю, что даже если задать ему размер буфера, то при присвоении короткой строки он всё равно обрежется, так что есть ли смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 15:15
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
Fara Ты бы привёл кусок текста программы, который не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 15:16
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Смысл то есть. Мне необходимо создать таблицу с некоторым, достаточно большим, набором полей в dbf. Но видимо ExecuteSQL все равно давится на определенном кол-ве символов. Не знаете, как с этим бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 15:34
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
Fara А как ты узнал, что она обрезается на 255м символе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 15:43
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Методичным топаньем по дебагеру и просмотром присвоения всех символов:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 16:09
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
Что значит " просмотром присвоения всех символов "? Ты написал в цикле переприсвоение всех символов строки в отдельную односимвольную переменную и просматриваешь её? Или всё-таки смотришь всю строку в отладчике? Если второй вариант, то у меня для тебя хорошая новость: отладчик показывает не всю CString, это я видел неоднократно. Насчёт ровно 255 не поручусь, но не всю. Выведи в MessageBox. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 16:23
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Если хочешь видеть в отладчике, присвой другой CString куски по 255 длине. И увидишь чудо :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.09.2003, 18:40
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Спасибо за информацию:) Ошибку все равно пришлось обходить, потому что ExecuteSQL не ест длинные строки:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2003, 10:24
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
"потому что ExecuteSQL не ест длинные строки:(" Да ест он и ещё как ;) а CString я заполняю через CString.Format(), пока не подводил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2003, 15:58
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
Да, ест, неоднократно делал. Ты бы всё-таки привёл этот SQL, и что за сообщение об ошибке. Источник, говоришь, dbf-овский? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2003, 18:26
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
ExecuteSQL у меня нормально все ест при работе с тем же SQL Server, а вот с dbf не хочет. такое ощущение, что просто база не принимает. ибо выдает синтаксический егор на запросе. А при сокращении длины запроса все работает нормально. Приходится выдавать ему кусками. а это тормозит естественно сильно:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.09.2003, 20:46
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
Ну по крайней мере CString реабилитирован :) Почему ты не хочешь привести SQL-выражение? Оно у тебя что, с секретной правой частью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2003, 09:41
|
|||
|---|---|---|---|
|
|||
размер CString |
|||
|
#18+
Да просто в нем нет ничего выдающегося:)) "create table ttt (..." а дальше строится динамически, в зависимости от входных данных (имеется ввиду кол-во колонок, название и тип.) Если я подставляю одну-две колонки (с любыми типами и именами) - все ок. А если больше - все умирает. и приходится потом мучится с alter table... add:(((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.09.2003, 12:40
|
|||
|---|---|---|---|
размер CString |
|||
|
#18+
Да просто в нем нет ничего выдающегося Есть, раз он не выполняется. В общем, твоё дело, ты мучаешься, не я. Но если бы ты его прислал, я бы смог проверить, а так остаётся только сказать "так не бывает". Функция для трассировки длинных строк прилагается :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2035991]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 336ms |

| 0 / 0 |
