Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Kris_1
5 / 5 / 0
Регистрация: 16.01.2013
Сообщений: 16
#1

Нужно сделать регистронезависимый поиск по таблице, содержащей русские буквы - Программирование Android

17.01.2013, 00:04. Просмотров 905. Ответов 3
Метки нет (Все метки)

Здравствуйте! Мне нужно добавить возможность выборки из базы данных sqlite по русским буквам (содержащие известнрую проблему с like и uppercase). Делаю все по этой статье http://habrahabr.ru/post/122408/
Получаю откомпилированный файл libandroid_sqlite.so
Далее у автора так все расплывчато написано, я не пойму как его использовать.
Кто в курсе темы, пожалуйста, помогите..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно сделать регистронезависимый поиск по таблице, содержащей русские буквы (Программирование Android):

Вывести все русские строчные буквы в порядке следования их кодов в таблице ASCII - Free Pascal
вывести все русские строчные буквы в порядке следования их кодов в таблице ASCII

Поиск в selecte - русские буквы - JavaScript
В IE есть встроенный поиск по певой букве в поле select. Но вот с русскими буквами че-то не хочет работать. Может кто подскажет, как...

Поиск строки, содержащей наибольшее количество слов, начинающихся с гласной буквы - Delphi
помогите с алгоритмом. а то я что то никак не въеду как делать

поиск на русские буквы выдает аброкадабру - Web
Уважаемые web-дизайнеры, у меня такая проблема, я нашла как сделать форму, как сделать поиск, все есть, но поиск работает только с...

Регистронезависимый поиск - PHP
Сделал поиск, написал элементарную регулярку. Регистр все равно учитывается. в пришедшей строке могут быть любого регистра символы, в str...

Регистронезависимый поиск - MySQL
привет всем, купил я скрипт oxyclassifieds 7.08 Столкнулся с такой проблемой. При поиске регистр чувствителен. Вопрос как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Razor23Donetsk
2 / 2 / 0
Регистрация: 20.02.2015
Сообщений: 23
20.06.2016, 20:55 #2
Приведу пример решения на C#. Сразу скажу, что такой подход снижает производительность (http://dev.net.ua/blogs/def1983/page...rformance.aspx), но у меня с ним проблем пока не возникало, и работает всё именно так как и должно.
Для этого я использовал Пользовательскую Функцию (User-Defined Function) и создал вот такой класс :
C#
1
2
3
4
5
6
7
8
9
    [SQLiteFunction(Arguments = 1, FuncType = FunctionType.Scalar, Name = "ToUpper")]
    class UpperCaseConverter : SQLiteFunction
    {
        public override object Invoke(object[] args)
        {
            string initialString = (args[0] as string); //получаем исходную строку.
            return (initialString != null) ? initialString.ToUpper() : null; //Если строка != null, переводим в верхний регистр.
        }//Invoke
    }//UpperCaseConverter
Далее один раз за время работы программы надо зарегистрировать функцию (естественно до исп-ния ф-ции в коде) :
C#
1
2
3
4
5
6
7
            //Создаём подключение.
            using (SQLiteConnection connection = new SQLiteConnection(connectionString))
            {
                connection.Open(); //открываем подключение
                SQLiteFunction.RegisterFunction(typeof(UpperCaseConverter)); //регистрируем udf. 
                connection.Close(); //закрываем подключение
            }//using
Использование в коде:
C#
1
string query = "SELECT ToUpper(Column1) FROM Table;"
0
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
20.06.2016, 23:39 #3
Мой вариант, возможно, слишком груб, но работает исправно. В таблице я делаю еще один столбец, куда заносится дубль столбца для поиска с кириллицей, но текст написан в uppercase. Поиск веду по этому столбцу, преобразовав запрос в uppercase. Вывод, естественно, из исходного столбца.
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
21.06.2016, 12:25 #4
Alexvp, собственно, это самое простое и распространённое решение. Правда, размер базы существенно увеличивается. И лучше lowercase, чтобы читать было приятнее. Давно прошли времена печатных машинок с большими буквами, а народ до сих пор лепит uppercase.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2016, 12:25
Привет! Вот еще темы с ответами:

Нужно, чтобы проверяло, если ли русские буквы в строке - C++
В строке должны быть буквы английского алфавита, цифры и пробелы. И если буква русская, то оповещать об этом. int proverka_processor(int...

Выполнить регистронезависимый поиск - Turbo Pascal
как выполнять поиск в файле, чтобы не было зависимости от регистра введенных символов? а то вводишь паскаль, а Паскаль уже не находит... ...

JS, RegExp. Поиск знаков пунктуации (русские буквы принимаются за пунктуацию) - JavaScript
Нужно выражение, которое ищет хотя бы один знак пунктуации. Пробовал такое: function isContainPunctuation(_string) { re_punct =...

Регистронезависимый поиск LOWER UPPER - Firebird/InterBase
Ребята здравствуйте ... У Interbase 6.5 LOWER как работает ? Только UPPER Работает да select * from employees where...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.06.2016, 12:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru