|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
|||||||||||
Как разобраться с кареткой без циклов20.08.2019, 17:42. Показов 4265. Ответов 34
Пишу программу которая умеет считать строки, а точнее нумеровать их.
Идея такая сделал два текстбокса. Первый отвечает за нумерацию второй за текст. Этот код работает очень медленно если его повесить на событие текстбокса
Как бы его исправить без циклов и прочего и что-бы так сказать не нарушить его молниносную скорость!)) Спасибо огромное!
0
|
|||||||||||
| 20.08.2019, 17:42 | |
|
Ответы с готовыми решениями:
34
Как быстро копировать память без всяких циклов |
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
|||||||||
| 23.08.2019, 10:40 [ТС] | |||||||||
|
Добавлено через 6 минут Тема актуальная у кого есть идея просьба отписаться буду очень благодарен! Новый исходник уже с новыми идеями. Пока все работает так как надо но проблема с вставками не решена. Так же здесь я решил проблему со скролами. Теперь при добавление текста в textboxReader => texboxNumber нумерует строку и скролится синхронно вместе с текстбоксам 2. На данный момент не решена проблема при вставки текста быстро пронумеровать строки. А так же при его удаление Полный исходный код текстового редактора без отдельного класса который отвечает за синхронный скроллинг
0
|
|||||||||
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
||
| 23.08.2019, 10:54 [ТС] | ||
|
Добавлено через 3 минуты V_Monomax, Есть к вам вопрос как сделать правильно на общее событие вешать ваш код или на событие конкретно именно вставки текста. Если второе тогда как сделать событие на вставку текста я не знаю. Это нужно делать событие на ctrl + V на "вставить" в контекстном меню и на открыть в контекстном меню а так же на горячую клавишу которая отвечает за открыть.
0
|
||
|
|
||
| 23.08.2019, 11:24 | ||
|
А если вы речь ведете о том что вы хотите печатая текст нумеровать строки, то ту погодите, давайте разберемся в том что один цикл на миллионы итераций с простеньким кодом не расходует особо времени. А вот навешивание такого кода на часто исполняемое событие - абсолютное зло. Важно что-бы вы поняли, выбранный вами путь, очень плохой путь. В вашем случае надо выполнять условие: Берем изначальное значение, строк, берем текущее, если колличество не изменилосьЮ ничего не делаем, иначе исполняем нумерацию, путем добавления строки, в конец (если дельта увеличилась, иначе удаляем последнюю строку...).
1
|
||
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
|||||||
| 23.08.2019, 15:46 [ТС] | |||||||
0
|
|||||||
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
||||||
| 25.08.2019, 20:40 [ТС] | ||||||
|
V_Monomax, Даже не стал вам писать ни какого таймера стало все ясно при запуске вашего кода. Код работает крайне медленно я сидел ждал 1м строк примерно секунд 15 Когда тот же notepad вставляет нумерацию вместе с строкой на 1м за щелчок пальца!
Запускаю ваш код функцией которую при старте программы запускает конструктор и функция отрабатывает.
Добавлено через 7 минут Я согласен ваш код не много быстрее ну это и так ясно, моего на первый взгляд! Но на (практике) в программе я лично разницы не заметил. А если она и есть то там миллисекунды. В этой задаче нужно что-то другое. Уже просто ради интереса как решать подобные задачи не знаю!)))
0
|
||||||
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
|
|
| 25.08.2019, 22:38 | |
|
тут можно попробовать убрать иф-элс, много не выгадаешь, но все же, и самое главное убрать конкатенации строк, вот где злое злище
1
|
|
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
||
| 26.08.2019, 10:53 [ТС] | ||
|
0
|
||
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
|
||||||
| 26.08.2019, 23:46 | ||||||
Сообщение было отмечено Terabiterr как решение
Решение
допустим, что известно кол-во строк, тогда
1
|
||||||
|
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
|
|
| 31.08.2019, 12:37 | |
Сообщение было отмечено Terabiterr как решение
Решение
Во первых StringBuilder вместо простой конкатенации строк, во вторых использовать единоразово присваивание textBox.Text = stringBuilder.ToString()
1
|
|
|
35 / 23 / 7
Регистрация: 23.12.2018
Сообщений: 101
|
|
| 03.09.2019, 22:38 | |
|
Terabiterr, дико извиняюсь, но прошу пояснить задачу, т.к. не врубаюсь:
Тебе нужен один текстбокс на ввод текста, а другой - на вывод результата с уже пронумерованными строками?
0
|
|
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
|
| 09.09.2019, 11:00 [ТС] | |
|
V_Monomax,
Я так дart_artemios, Ты когда в visual studio пишешь код , ты не когда не замечал что слева нумеруются строки? Вот это задание именно про это.Причем это должно работать как можно быстрее!)
0
|
|
|
.NET
133 / 91 / 44
Регистрация: 17.08.2015
Сообщений: 296
|
||||||||||||
| 09.09.2019, 11:41 | ||||||||||||
Сообщение было отмечено Terabiterr как решение
РешениеДобавляешь Label на форму и располагаешь рядом с textbox'ом.
А лучше сделать обработку через прокрутку колесика
2
|
||||||||||||
|
5 / 18 / 6
Регистрация: 15.10.2017
Сообщений: 161
|
|
| 09.09.2019, 12:00 [ТС] | |
|
0
|
|
| 09.09.2019, 12:00 | |
|
Как управлять кареткой в файловом выводе Как узнать сколько дней в месяце, по дате без циклов?
Как узнать, владеет ли активное окно кареткой (и можно ли вообще) ?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|