On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение





Пост N: 198
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 14.05.21 12:24. Заголовок: dbt / fpt memo поле > 64K


Не могу записать в memo-поле копипастом текст, больше 64К - обрубает при вставке.
Пробовал dbt и fpt - результат один.
Если в memo-поле уже есть большой текст (> 64K), то EDITBOX не хочет редактировать.
Кто-то с таким сталкивался?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


постоянный участник




Пост N: 6954
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 14.05.21 12:54. Заголовок: А через утилиту dbed..


А через утилиту dbedit.exe пробовал ?
http://clipper.borda.ru/?1-4-0-00001125-000-100-0-1610816199

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1860
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 14.05.21 13:05. Заголовок: krutoff пишет: Если..


krutoff пишет:

 цитата:
Если в memo-поле уже есть большой текст (> 64K), то EDITBOX не хочет редактировать.


Добавь в определение этого EDITBOX класс

 цитата:
MAXLENGTH 1000000


(проверял на примере из папки DATA_BOUND, теперь EDITBOX в этом примере может сохранить больше 64K)

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 199
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 14.05.21 16:37. Заголовок: Спасибо, Григорий!..


Спасибо, Григорий!

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 200
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 14.05.21 16:39. Заголовок: Хочу через свой прог..


Хочу через свой програмный код. А эту Пашину утилиту скачать не смог - все ссылки битые.
Упс... Скачал. Надо было прокси подключить для обхода блокировки.

ТЕПЕРЬ НОВАЯ НЕПОНЯТКА. При редактировании memo-поля большого размера (97K) объем файла dbt каждый раз увеличивается вдвое. И так при добавлении хотя бы одного символа. И тот же результат через dbedit.exe. Я так понимаю, скапливается мусор. Перекачиваю с помощью другого RDD ( временный fpt ) - мусор вроде как уходит. Шарады и загадки. Как сделать, чтобы работало НЕ через (ж) то самое место? А мне надо именно, чтобы сразу работало через файл dbt.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1613
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 14.05.21 20:04. Заголовок: krutoff пишет: ТЕПЕ..


krutoff пишет:

 цитата:
ТЕПЕРЬ НОВАЯ НЕПОНЯТКА. При редактировании memo-поля большого размера (97K) объем файла dbt каждый раз увеличивается вдвое. И так при добавлении хотя бы одного символа. И тот же результат через dbedit.exe. Я так понимаю, скапливается мусор. Перекачиваю с помощью другого RDD ( временный fpt ) - мусор вроде как уходит. Шарады и загадки. Как сделать, чтобы работало НЕ через (ж) то самое место? А мне надо именно, чтобы сразу работало через файл dbt.


Никак не сделать. Под измененное поле выделяется новое место. База 1с строится так же, к примеру.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4018
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 14.05.21 20:15. Заголовок: Формат dbt очень уж ..


Формат dbt очень уж простой. Если размер мемо-поля после его редакции в блоках больше чем исходный размер, то это мемо-поле пишется в конец файла dbt. Поэтому использовать этот формат при активном изменении мемо-полей крайне нежелательно.
Формат fpt содержит список свободных блоков, поэтому такой проблемы нет, этот файл получается намного компактнее.
И неважно, через какую утилиту/библиотеку это делать, в любом случае работу выполняет один и тот же rdd.

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 201
Зарегистрирован: 17.10.05
ссылка на сообщение  Отправлено: 15.05.21 10:55. Заголовок: Спасибо, Паша, вразу..


Спасибо, Паша, вразумил! Буду в таких активных изменениях включать блок очистки.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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 поля были в добавок)

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 12
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет