parser

/faq/faq
/authors/авторы
/docs/документация

/powered_by_parser/в действии
/feedback/куда говорить
/jargon/жаргон

/download/скачать

/examples/примеры
/forum/форум



Поиск по форуму

По умолчанию ключевое слово ищется только в заголовке сообщения.

Ключевое слово:

Фильтровать по автору:



еще вариант на тему:

Misha 26.07.2001 15:37

# Вначале два макроса, которые не нужны, если парсер знает комманды ^length и ^mid...
############################################################
@length[string]
^var[temp_length;$string]^var[temp_i;0]^var[exit;0]^while[exit<1;^ifdef[^match[.{^var[temp_i]};;^var[temp_length]];^var[temp_i;+;1];^var[exit;1]^var[temp_i;-;1]]]^var[temp_i]
@end


############################################################
@substr[string;first;numbers]
^var[temp_substr;$string]^context[temp_substr;^match[(.{^eval[$first-1]})(.{$numbers});;^var[temp_substr]]^item[temp_substr;\2]]
@end


# это в общем к делу не относится, просто юзать ЭТО удобнее, чем писать все в одну строчку :)
############################################################
# обрезаем все пробельные символы в начале и в конце строки
@trim[source]
^level[none;^match[\s+$$;;;^match[^^\s+;;;$source]]]
@end


@translit[txt]
^macro[trim;^context[translit;
# эту загрузку данных в контекст тоже надо отсюда убрать в @autoexec
    ^load[named;translit.cfg]
    ^for[translit_i;1;^macro[length;$txt];
    	^var[translit_cur;^macro[substr;$txt;^var[translit_i];1]]
    	^ifdef[^match[[^^а-яА-Я];g;^var[translit_cur]];
        	^var[translit;.;^var[translit_cur]]
        ;
        	^var[translit;.;^item[translit;^var[translit_cur]]]
        ]
    ]
    
]^var[translit]]
@end



Содержимое файла _translit.cfg (две строки, грузится как именованый контекст!):
Б	В	Ч	З	Д	Е	Ц	Ъ	Й	К	Л	М	Н	О	П	Р	Т	У	Ф	Х	Ж	И	Г	Ю	Ы	Э	Я	Щ	Ш	Ь	А	С	б	в	ч	з	д	е	ц	ъ	й	к	л	м	н	о	п	р	т	у	ф	х	ж	и	г	ю	ы	э	я	щ	ш	ь	а	с	 
a	b	v	g	d	e	zh	z	i	j	k	l	m	n	o	p	r	s	t	u	f	h	c	ch	sh	shch	q	y		e	ju	ja	a	b	v	g	d	e	zh	z	i	j	k	l	m	n	o	p	r	s	t	u	f	h	c	ch	sh	shch	q	y		e	ju	ja	 
Т.е. тут идея немного другая: не делаем menu|locate по контексту, а обращаемся к столбцу по имени :) (это идея Leechy)

Баг с заглавными буквами имеет место быть :)

<<  Вернуться к списку сообщений


E-mail: mailbox@parser.ruCopyright © 1997-2001 Студия Артемия Лебедева