|
|
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Есть две строки: строка А и строка Б. Из строки А получается строка Б, по определенному правилу. строка А представляет собой маску ввода, где на позиции отмеченной как "0", на выходе (строка Б), может стоять только цифра. символ "/" означает, что следующий за ним символ экранирован, и должен сам выводиться в строку Б. пример 1: 000 -> ЦЦЦ пример 2: /000 -> 0ЦЦ пример 3: //000 -> /ЦЦЦ ,где Ц - цифра красным выделен эранированный символ При вводе нового символа, берется соответствующиее ему правило из строки А. если вводимый символ не удовлетворяет условию он не вводится. Если на месте вводимого символа в строке А стоит экранированный символ, то выводится этот экранированный символ. Для примера 1 все просто: каждому вводимому символу соответсвует символ в строке А (маске ввода) с тем же номером. Для примера 2 все усложняется: ввод первого символа -> вывод экранированного символа- "0" ввод второго символа -> правило ввода уже не на 2-й позиции, а на 3-ей ввод третьего символа -> привило ввода на 4-ой позиции. Т.е. позиция правила ввода не соответсвует позиции вводимого символа. Поэтому существует курсор указывающий на нужную позицию в маске (строке А). Если в маске стоит экранированный символ, то курсор перемещается на 2 позиции вперет, если не экранированнй символ то курсор перемещается на 1 позицию вперет. Вопрос: Если пользователь захочет стереть уже введенный символ, как узнать на сколько позиций перемащать назад курсор в маске: на одну или на две? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2007, 12:32 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
Alex_BBB Вопрос: Если пользователь захочет стереть уже введенный символ, как узнать на сколько позиций перемащать назад курсор в маске: на одну или на две? Спасибо. завести переменную, в которой хранить количество уже введённых символов, соответствующих текущему символу маски. И смотреть её при стирании ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2007, 14:38 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
LINUXER завести переменную, в которой хранить количество уже введённых символов, соответствующих текущему символу маски. И смотреть её при стирании Получается что не переменную, а массив переменных. Т.к. пользователь может захотеть стереть не одни а два или три уже введенных символа. Насколько будет накладно хранить скажем пять таких массивов по 20 элементов каждом? (ситуация, когда на странице пять полей ввода и в каждое можно ввести до 20 символов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2007, 16:35 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
Ты ведь делаешь что-то вроде валидатора? Если так, то повесь на onKeyUp обработчик, который бы делал проверку всего твоего поля. Если поле не большое, то будет быстро работать. Ну а если у тебя какой-нибуть там многострочный текст то можно проверку делать на onChange, либо оставить на onKeyUp и проверять, скажем новый символ. Вот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2007, 17:24 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
mrJustТы ведь делаешь что-то вроде валидатора? Если так, то повесь на onKeyUp обработчик, который бы делал проверку всего твоего поля. Если поле не большое, то будет быстро работать. Ну а если у тебя какой-нибуть там многострочный текст то можно проверку делать на onChange, либо оставить на onKeyUp и проверять, скажем новый символ. Вот. Спасибо за предложение. не катит, уже много думал напередумал на эту тему. событие только onkeypress. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2007, 17:32 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
Alex_BBB LINUXER завести переменную, в которой хранить количество уже введённых символов, соответствующих текущему символу маски. И смотреть её при стирании Получается что не переменную, а массив переменных. Т.к. пользователь может захотеть стереть не одни а два или три уже введенных символа. Насколько будет накладно хранить скажем пять таких массивов по 20 элементов каждом? (ситуация, когда на странице пять полей ввода и в каждое можно ввести до 20 символов) похоже я не так понимал ситуацию. Теперь я заметил что каждому символу маски соответствует 1 символ строки Б. Значит нужно чтобы экранированные сами стирались=) Тогда после стирания нужно посмотреть на вершину маски(на к-рую указывает курсор) и вытащить(сместить курсор на) все экранированные символы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2007, 07:50 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
LINUXER Теперь я заметил что каждому символу маски соответствует 1 символ строки Б. Значит нужно чтобы экранированные сами стирались=) Тогда после стирания нужно посмотреть на вершину маски(на к-рую указывает курсор) и вытащить(сместить курсор на) все экранированные символы Т.е. для каждой операции стирания нужно будет подсчитывать колличество экранированных символов? Если стирать можно было бы только последний символ, то коллчество эранированных символов сосчитать просто: положение курсора маски минус колличество введенных символов Но вот уже на второе стирание, так просто подсчет не сделать. (надо учесть что символы эранирования "/" могут экранировать сами себя) Можно конечно заново проходить маску, как при вводе символа, столько раз сколько символов введено минус один стираемый. Но логика ввода, не то что бы уж очень сложна, но не тривиальна. Вот в этом то и впрос, как наиболее просто посчитать, сколько символов в маске соответствует одному вводу пользователя? Счас склоняюсь, как ты и предложил, к ведению истории. Кождому нажатию клавиши соответствует число равное тому на сколько передвинулся курсор в маске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2007, 13:36 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
А код есть? если много, лучше Приложить файл (максимальный размер 100Kb) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.05.2007, 14:07 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
LINUXERА код есть? если много, лучше Приложить файл (максимальный размер 100Kb) Прилагаю код, так же есть целая статья на эту тему, http://www.maxaman-soft.ru/content/view/26/67/ правда там описывается первая версия. А в приложении лежит вторая, стирание работает некорректно. Буду признателен за помощ. Если решение найдешь раньше меня, включу в авторство как разработчика системы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 12:54 |
|
||
|
поиск позиций в связанных по привилу строках
|
|||
|---|---|---|---|
|
#18+
Еще есть структурная схема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2007, 12:55 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=381&tid=1458332]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 394ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...