|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
Не знаю почему ее нет в core-функциях, но без нее не обойтись при работе с бух. данными с "нечеткими" подстроками. А заменить нечем (не городить же кучу LIKE-ов по подстрокам?) ... В SQLite Manager для FireFox есть функционал с пользовательскими функциями (хранятся отдельно - в smFunctions.sqlite), однако как его задействовать - непонятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 13:02 |
|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
economistalex, Чем куча LIKE отличается от кучи INSTR?.. Аналог (функция charindex) есть в расширении functions.c Можно скомпилировать эскулайт с этим расширением или загрузить его в эскулайт. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 13:58 |
|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
Instr дает позицию подстроки, обычно двух Instr и одного Substr достаточно для "выковыривания" любой полезной информации из текстовых комментариев симпатичных, но очень нестабильных по формулировкам бухгалтерш... ... MBG, а нет готового скомпилированного SQLite с functions.c - хочется проверить скорость работы функции charindex? Загружать расширения не умею... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2011, 14:47 |
|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
economistalexInstr дает позицию подстроки, обычно двух Instr и одного Substr достаточно для "выковыривания" любой полезной информации из текстовых комментариев симпатичных, но очень нестабильных по формулировкам бухгалтерш... Регекспы намного удобнее в такой ситуации (пример на Tcl): Код: plaintext 1. 2. 3.
Можно найти расширения с поддержкой поиска по регекспу: http://www.mailinglistarchive.com/html/sqlite-dev@sqlite.org/2010-08/msg00000.html]http://www.mailinglistarchive.com/html/sqlite-dev@sqlite.org/2010-08/msg00000.html https://github.com/eatnumber1/sqlite-regexp Если же нужно извлекать подстроки, несложно, к примеру, тиклевый интерпретатор использовать: http://sqlite.mobigroup.ru/wiki?name=ext_tcl Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Добавьте свою команду для извлечения нужной части фразы, если есть желание сделать SQL запросы короче. Если хотите, замените тикль на другой язык, некоторое время назад в рассылке sqlite-users пробегали расширения на питоне. economistalexMBG, а нет готового скомпилированного SQLite с functions.c - хочется проверить скорость работы функции charindex? Скомпилировать - секундное дело, в файле по ссылке есть нужная команда. Под линукс могу сделать, а других ОС у меня нет. economistalexЗагружать расширения не умею... http://www.sqlite.org/lang_corefunc.html#load_extension ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 00:22 |
|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
Ответ понял. Еду... (в смысле иду по ссылкам). Python мне по душе, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.08.2011, 11:41 |
|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
В общем, создал ф-ю регистронезависимого INSTR средствами FireFox - Plugin "SQLite Manager" - ч/з кнопку f(x) (она создается на JavaScript и хранится в отдельной sqlte-базе в папке для UDF). Ф-я имеет два аргумента и работает так: INSTR('строка', 'ока') = 4. Естественно она работает только в FireFox, но это и требовалось т.к. движок sqlite внутри мозиллы не позволяет загружать расширения. Сама функция: var pos = 0; var gde = new String(aValues.getString(0)).toLowerCase(); var chto = new String(aValues.getString(1)).toLowerCase(); pos=gde.indexOf(chto)+1; return pos; ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2011, 11:33 |
|
Функция INSTR('строка', 'ока', [начало]) = 4. Как реализовать ее в sqlite3.dll и exe?
|
|||
---|---|---|---|
#18+
Ну а кому все-таки понадобится поиск подстроки в строке - можно поискать в просторах сети файл sqlite3_mod_extfunc.dll и загрузить его (при использовании sqlite3odbc - просто указав в DSN-строке или в сво-вах ODBC. Dll-ка добавит функции Математические: acos, asin, atan, atn2, atan2, acosh, asinh, atanh, difference, degrees, radians, cos, sin, tan, cot, cosh, sinh, tanh, coth, exp, log, log10, power, sign, sqrt, square, ceil, floor, pi. Строковые: replicate, charindex, leftstr, rightstr, ltrim, rtrim, trim, replace, reverse, proper, padl, padr, padc, strfilter ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2012, 15:31 |
|
|
start [/forum/topic.php?fid=54&fpage=18&tid=2009000]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 270ms |
total: | 390ms |
0 / 0 |