ZXNet эхоконференция «code.zx»
тема: Modern Word.
от: Aleksey Malov
кому: All
дата: 11 Jun 2000
Приветствую тебя, All!
Может, кто-нибудь может связаться с Demiurg Ash'ем по поводу сабжа. Есть
предложение без лишнего геморроя на порядок ускорить процесс форматирования
текста, а то задалбывает полчаса ждать, пока сабж 16 килобайтовый текст
отформатирует.
Идея такая: Текущая версия сабжа постоянно раздвигат (или сдвигает) текст в
буффере в процессе форматирования. В результате скорость падает
катастрофически.
Я же предлагаю следующий способ (по-моему, авторы могли бы и сами догадаться):
Есть текст. Внутри него отмечен блок, подлежащий форматированию. В результате
текст как бы разбивается на 3 части - текст до выделенного блока, сам блок,
текст после выделенного блока. Hаличие текста до и после блока не является
обязательным.
В результате внутри текстового буффера образуется дыра.
source_adr=новый адрес начала блока (адрес следующий за адресом последнего
байта дыры).
destination=адрес начала дыры.
Педед процессом форматирования часть текста с начала блока и до последнего
байта текста перекидывается в конец текстового буффера.
Далее начинается сам процесс форматирования:
Берется строка из source_adr, форматируется и кладется в destination. Конец
строки, который необходимо перенесыти на другую строку, добавляется к началу
следующей строки из source_adr.
Я думаю, принцип ясен. Скорость форматирования по моим подсчетам будет не
менее 30k в секунду. Hалицо опримизация в сотни раз.
Желаю вам здоровья, счастья и творческих узбеков.
Aleksey Malov aka VIVID/Brainwave.
|