Страница: 1 |
_тормозит_редактор_ написал себе редактор, вроде как работает, но если файл более 100 кБ тормозит. может кто поделится тонкостя'ми.
а ты небось его грузишь целиком.. что не есть хорошо ... расчитать скрол можно и по размеру файла.... и лучше всего грузить "джанками" кусками по русски... например по 10-32 кб... за раз ... и когда ты продвигаешь вниз скрол то просто так же двигатся по файлу и читать.... всего лишь не достающую часть таким образом... ты сможешь открыть хоть 1Гиг файл и тормозов не будет. да тормозит при работе. когда пытаюсь открыть файл более 500 кб вообще вылетает в run time. - а про кусочки файла, как хранить изменённый текст? - брать новый файл и туда исходный строить? - ладно, как скрол расчитать растолкуйте! Измененный текст при открытии очень больших файлов обычно хранят в очень разреженных массивах, т.е. сохраняются изменения, а не байты. Скролл рассчитывается исходя из того, включен ли word-wrap или нет. Если да, то это непросто , если нет - длину полагают равной числу vbCrLf'ов. да ... Шарп прав изменения можно хранить в масиве но чтоб память не жрать .. организовать темп файлик куда с оффсетом писать ... изменения ... и усё +) можно скролинг и по размеру расчитать если за раз в твоём окошке помешается 17КБ тексту то .. соотсвенно делишь всё на 17 +) и получаешь .... число для скролинга единтсвенно что про остаток не забудь +) и вообще читать лучше всё не лайнами а байтами +) не проще но лучше +) Такой вопрос - ты 100 кБ случаем не в стандартный TextBox грузишь? Наверняка именно туда так что и говорят по кускам.. да и влюбом другом случаи надо всегда по кускам... так как грузить в память весь файл это жирно слишком Я как тему прочитал - так в ступор и впал... ...тормозит главный редактор... $-))) Попробуй перейти на RTB. > можно скролинг и по размеру расчитать если за раз в твоём окошке помешается 17КБ тексту то .. соотсвенно делишь всё на 17 +) и получаешь .... Не пойдет. Представь себе эти 17 килобайт, оформленные в виде одного символа и энтера, получицца около 5 тысяч строк, если, скажем, в одной строке помещается 100 символов (и 170 строк), ты будешь думать, что у тебя 170 строк, а на самом деле 5000. Поэтому нужно перебирать все байты, инкрементируя счетчик, если счетчик равен ширине строки, инкрементировать число строк, обнулить счетчик, если байты - vbCrLf, тоже самое. Всем спасибо за ответы. А главного редактора я обидеть не хотел. Вообщем-то я и начал, видя тормоза, совать части файла в темп-файл. А вот как сохранять в темп только измененный или созданный текст, что-то не въеду. Страница: 1 |
Вопрос: _тормозит_редактор_
Добавлено: 11.05.04 19:40
Автор вопроса: __Сергей__
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Иван
Администратор
ICQ: 147688925
Вопросов: 24
Ответов: 708
Web-сайт:
Профиль | | #1
Добавлено: 11.05.04 21:54
Когда тормозит? При загрузке файла?
Номер ответа: 2
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #2
Добавлено: 11.05.04 22:18
Номер ответа: 3
Автор ответа:
__Сергей__
Вопросов: 7
Ответов: 23
Профиль | | #3
Добавлено: 11.05.04 22:36
Номер ответа: 4
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #4
Добавлено: 12.05.04 01:23
Номер ответа: 5
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #5
Добавлено: 12.05.04 08:11
Номер ответа: 6
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #6
Добавлено: 12.05.04 08:11
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 12.05.04 08:57
Номер ответа: 8
Автор ответа:
Fallout
Вопросов: 10
Ответов: 387
Web-сайт:
Профиль | | #8
Добавлено: 12.05.04 09:17
Номер ответа: 9
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #9
Добавлено: 12.05.04 10:34
Номер ответа: 10
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #10
Добавлено: 12.05.04 19:01
Номер ответа: 11
Автор ответа:
__Сергей__
Вопросов: 7
Ответов: 23
Профиль | | #11
Добавлено: 12.05.04 20:58