Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / поиск позиций в связанных по привилу строках / 11 сообщений из 11, страница 1 из 1
30.04.2007, 12:32
    #34497474
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
Здравствуйте.

Есть две строки: строка А и строка Б.
Из строки А получается строка Б, по определенному правилу.

строка А представляет собой маску ввода, где на позиции отмеченной как "0", на выходе (строка Б), может стоять только цифра.
символ "/" означает, что следующий за ним символ экранирован, и должен сам выводиться в строку Б.

пример 1: 000 -> ЦЦЦ
пример 2: /000 -> 0ЦЦ
пример 3: //000 -> /ЦЦЦ
,где Ц - цифра
красным выделен эранированный символ

При вводе нового символа, берется соответствующиее ему правило из строки А.
если вводимый символ не удовлетворяет условию он не вводится.
Если на месте вводимого символа в строке А стоит экранированный символ, то выводится этот экранированный символ.

Для примера 1 все просто:
каждому вводимому символу соответсвует символ в строке А (маске ввода) с тем же номером.

Для примера 2 все усложняется:
ввод первого символа -> вывод экранированного символа- "0"
ввод второго символа -> правило ввода уже не на 2-й позиции, а на 3-ей
ввод третьего символа -> привило ввода на 4-ой позиции.
Т.е. позиция правила ввода не соответсвует позиции вводимого символа.

Поэтому существует курсор указывающий на нужную позицию в маске (строке А).
Если в маске стоит экранированный символ, то курсор перемещается на 2 позиции вперет, если не экранированнй символ то курсор перемещается на 1 позицию вперет.


Вопрос:
Если пользователь захочет стереть уже введенный символ, как узнать на сколько позиций перемащать назад курсор в маске:
на одну
или на две?


Спасибо.
...
Рейтинг: 0 / 0
30.04.2007, 14:38
    #34497549
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
Alex_BBB
Вопрос:
Если пользователь захочет стереть уже введенный символ, как узнать на сколько позиций перемащать назад курсор в маске:
на одну
или на две?


Спасибо.
завести переменную, в которой хранить количество уже введённых символов, соответствующих текущему символу маски. И смотреть её при стирании
...
Рейтинг: 0 / 0
30.04.2007, 16:35
    #34497635
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
LINUXER
завести переменную, в которой хранить количество уже введённых символов, соответствующих текущему символу маски. И смотреть её при стирании
Получается что не переменную, а массив переменных. Т.к. пользователь может захотеть стереть не одни а два или три уже введенных символа.

Насколько будет накладно хранить скажем пять таких массивов по 20 элементов каждом?
(ситуация, когда на странице пять полей ввода и в каждое можно ввести до 20 символов)
...
Рейтинг: 0 / 0
30.04.2007, 17:24
    #34497674
mrJust
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
Ты ведь делаешь что-то вроде валидатора?
Если так, то повесь на onKeyUp обработчик, который бы делал проверку всего твоего поля.
Если поле не большое, то будет быстро работать. Ну а если у тебя какой-нибуть там многострочный текст то можно проверку делать на onChange, либо оставить на onKeyUp и проверять, скажем новый символ. Вот.
...
Рейтинг: 0 / 0
30.04.2007, 17:32
    #34497680
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
mrJustТы ведь делаешь что-то вроде валидатора?
Если так, то повесь на onKeyUp обработчик, который бы делал проверку всего твоего поля.
Если поле не большое, то будет быстро работать. Ну а если у тебя какой-нибуть там многострочный текст то можно проверку делать на onChange, либо оставить на onKeyUp и проверять, скажем новый символ. Вот.
Спасибо за предложение.
не катит, уже много думал напередумал на эту тему. событие только onkeypress.
...
Рейтинг: 0 / 0
01.05.2007, 07:50
    #34498077
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
Alex_BBB LINUXER
завести переменную, в которой хранить количество уже введённых символов, соответствующих текущему символу маски. И смотреть её при стирании
Получается что не переменную, а массив переменных. Т.к. пользователь может захотеть стереть не одни а два или три уже введенных символа.

Насколько будет накладно хранить скажем пять таких массивов по 20 элементов каждом?
(ситуация, когда на странице пять полей ввода и в каждое можно ввести до 20 символов)
похоже я не так понимал ситуацию. Теперь я заметил что каждому символу маски соответствует 1 символ строки Б.
Значит нужно чтобы экранированные сами стирались=)
Тогда после стирания нужно посмотреть на вершину маски(на к-рую указывает курсор) и вытащить(сместить курсор на) все экранированные символы
...
Рейтинг: 0 / 0
01.05.2007, 13:36
    #34498181
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
LINUXER
Теперь я заметил что каждому символу маски соответствует 1 символ строки Б.
Значит нужно чтобы экранированные сами стирались=)
Тогда после стирания нужно посмотреть на вершину маски(на к-рую указывает курсор) и вытащить(сместить курсор на) все экранированные символы
Т.е. для каждой операции стирания нужно будет подсчитывать колличество экранированных символов?

Если стирать можно было бы только последний символ, то коллчество эранированных символов сосчитать просто:
положение курсора маски минус колличество введенных символов

Но вот уже на второе стирание, так просто подсчет не сделать.
(надо учесть что символы эранирования "/" могут экранировать сами себя)

Можно конечно заново проходить маску, как при вводе символа, столько раз сколько символов введено минус один стираемый. Но логика ввода, не то что бы уж очень сложна, но не тривиальна.

Вот в этом то и впрос, как наиболее просто посчитать, сколько символов в маске соответствует одному вводу пользователя?

Счас склоняюсь, как ты и предложил, к ведению истории. Кождому нажатию клавиши соответствует число равное тому на сколько передвинулся курсор в маске.
...
Рейтинг: 0 / 0
01.05.2007, 14:07
    #34498196
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
А код есть?
если много, лучше Приложить файл (максимальный размер 100Kb)
...
Рейтинг: 0 / 0
02.05.2007, 12:54
    #34499368
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
LINUXERА код есть?
если много, лучше Приложить файл (максимальный размер 100Kb)
Прилагаю код, так же есть целая статья на эту тему,
http://www.maxaman-soft.ru/content/view/26/67/
правда там описывается первая версия.

А в приложении лежит вторая, стирание работает некорректно.
Буду признателен за помощ. Если решение найдешь раньше меня, включу в авторство как разработчика системы
...
Рейтинг: 0 / 0
02.05.2007, 12:55
    #34499375
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
Еще есть структурная схема.
...
Рейтинг: 0 / 0
06.05.2007, 12:29
    #34507568
Alex_BBB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск позиций в связанных по привилу строках
Задача решена, на бумаге. осталось закодировать
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / поиск позиций в связанных по привилу строках / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]