|
Collation в .NET - как получить все буквы из заданного диапазона?
|
|||
---|---|---|---|
#18+
Пробую реализовать аналог T-SQL Like на C# для проекта ASSP: http://asstoredprocedures.codeplex.com/discussions/404654#post947371 RegEx аналог уже был, и он работает, но по двум причинам, хочется собрать "чистый" алгоритм без RegEx (1 - подвисание скомпилированных шаблонов в памяти, 2 - потенциальная возможность ускорить выполнение). За основу взял вот это: http://stackoverflow.com/questions/5417070/c-sharp-version-of-sql-like/8583383#8583383 Пока непонятно как обойти такую засаду: Как корректно реализовать парсинг выражений вида "[А-Я]", т. к., например, в CP 1251 "Ё" идёт перед "А" (0x401 и 0x410). Пока кроме как написания и поддержки собственных Collation'ов для каждого языка выхода не вижу. Подскажите, люди добрые, может есть попроще варианты? Может в недрах .NET есть массивы(или что там есть) с отсортированными в нужной последовательности символами для разных культур? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2012, 02:26 |
|
Collation в .NET - как получить все буквы из заданного диапазона?
|
|||
---|---|---|---|
#18+
iBorisBondarev, а почему бы шарпу не взять на себя проблемы с кодировкой? задайте ему char символ , и пусть он сравнивает. вот мне когда-то надо было что то в словах найти , написал что то своё ( по двум причинам, одн а из них - РегЭкс что то рушит мой моск ) я задавал шаблон в виде ё-л ^-2 з-*-ая-н ц-и-я о-т-ьпрога генерила код , компилила его , ну и применяла соотвественно. для любых символов больше 0x20 думаю специализированный скомпилированный код будет шустрее работать , нежели шаблонированный Код: c# 1. 2. 3. 4. 5.
не, конечена, если строк таки миллион ,и известна кодировка , то можна вабще в байтах кодировки сравнивать. если очень хочется скорости. миллион строк распарит мигом ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2012, 03:50 |
|
Collation в .NET - как получить все буквы из заданного диапазона?
|
|||
---|---|---|---|
#18+
iBorisBondarev, Эх... хорошо в VB.NET есть оператор LIKE Правда он не нативный, компилятор вызывает соответствующую функцию из CompilerServices в сборке Microsoft.VisualBasic.dll. Через рефлектор можно посмотреть реализацию ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2012, 09:33 |
|
|
start [/forum/topic.php?fid=20&msg=38057251&tid=1405571]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 442ms |
0 / 0 |