Автор | Сообщение |
|
| |
Пост N: 198
Зарегистрирован: 17.10.05
|
|
Отправлено: 14.05.21 12:24. Заголовок: dbt / fpt memo поле > 64K
Не могу записать в memo-поле копипастом текст, больше 64К - обрубает при вставке. Пробовал dbt и fpt - результат один. Если в memo-поле уже есть большой текст (> 64K), то EDITBOX не хочет редактировать. Кто-то с таким сталкивался?
|
|
|
Ответов - 8
[только новые]
|
|
|
| постоянный участник
|
Пост N: 6954
Зарегистрирован: 12.09.06
|
|
Отправлено: 14.05.21 12:54. Заголовок: А через утилиту dbed..
|
|
|
|
| moderator
|
Пост N: 1860
Зарегистрирован: 11.02.10
|
|
Отправлено: 14.05.21 13:05. Заголовок: krutoff пишет: Если..
krutoff пишет: цитата: | Если в memo-поле уже есть большой текст (> 64K), то EDITBOX не хочет редактировать. |
| Добавь в определение этого EDITBOX класс (проверял на примере из папки DATA_BOUND, теперь EDITBOX в этом примере может сохранить больше 64K)
|
|
|
|
| |
Пост N: 199
Зарегистрирован: 17.10.05
|
|
Отправлено: 14.05.21 16:37. Заголовок: Спасибо, Григорий!..
Спасибо, Григорий!
|
|
|
|
| |
Пост N: 200
Зарегистрирован: 17.10.05
|
|
Отправлено: 14.05.21 16:39. Заголовок: Хочу через свой прог..
Хочу через свой програмный код. А эту Пашину утилиту скачать не смог - все ссылки битые. Упс... Скачал. Надо было прокси подключить для обхода блокировки. ТЕПЕРЬ НОВАЯ НЕПОНЯТКА. При редактировании memo-поля большого размера (97K) объем файла dbt каждый раз увеличивается вдвое. И так при добавлении хотя бы одного символа. И тот же результат через dbedit.exe. Я так понимаю, скапливается мусор. Перекачиваю с помощью другого RDD ( временный fpt ) - мусор вроде как уходит. Шарады и загадки. Как сделать, чтобы работало НЕ через (ж) то самое место? А мне надо именно, чтобы сразу работало через файл dbt.
|
|
|
|
| постоянный участник
|
Пост N: 1613
Зарегистрирован: 27.01.07
|
|
Отправлено: 14.05.21 20:04. Заголовок: krutoff пишет: ТЕПЕ..
krutoff пишет: цитата: | ТЕПЕРЬ НОВАЯ НЕПОНЯТКА. При редактировании memo-поля большого размера (97K) объем файла dbt каждый раз увеличивается вдвое. И так при добавлении хотя бы одного символа. И тот же результат через dbedit.exe. Я так понимаю, скапливается мусор. Перекачиваю с помощью другого RDD ( временный fpt ) - мусор вроде как уходит. Шарады и загадки. Как сделать, чтобы работало НЕ через (ж) то самое место? А мне надо именно, чтобы сразу работало через файл dbt. |
| Никак не сделать. Под измененное поле выделяется новое место. База 1с строится так же, к примеру.
|
|
|
|
| Администратор
|
Пост N: 4018
Зарегистрирован: 23.05.05
|
|
Отправлено: 14.05.21 20:15. Заголовок: Формат dbt очень уж ..
Формат dbt очень уж простой. Если размер мемо-поля после его редакции в блоках больше чем исходный размер, то это мемо-поле пишется в конец файла dbt. Поэтому использовать этот формат при активном изменении мемо-полей крайне нежелательно. Формат fpt содержит список свободных блоков, поэтому такой проблемы нет, этот файл получается намного компактнее. И неважно, через какую утилиту/библиотеку это делать, в любом случае работу выполняет один и тот же rdd.
|
|
|
|
| |
Пост N: 201
Зарегистрирован: 17.10.05
|
|
Отправлено: 15.05.21 10:55. Заголовок: Спасибо, Паша, вразу..
Спасибо, Паша, вразумил! Буду в таких активных изменениях включать блок очистки.
|
|
|
|
| постоянный участник
|
Пост N: 3724
Зарегистрирован: 17.02.12
|
|
Отправлено: 15.05.21 13:17. Заголовок: krutoff пишет Буду в..
krutoff пишет цитата: | Буду в таких активных изменениях включать блок очистки. |
| Как вариант aArr := array(500) aFill(aArr, space(150)) cBuf := hb_Valtoexp(aArr) или cBuf доводить до max условного размера и сохранять. Новый размер max блока если будет , то запомнить и уже от него работать. С массивом проделывал такое в NSX (там и V поля были в добавок)
|
|
|
|