|
#1
|
|||
|
|||
Умный поиск
Здравствуйте! Мне нужно организовать такой поиск, где во введенной строке взаимозаменялись следующие виды символов:
-заглавная и строчная буква (Слово = слово, СЛОВО = слово) -буквы с аналогичным написанием в латинице и кириллице. Не то чтобы мне хотелось просить кого-то из форумчан писать с нуля этот код... просто думается, что он вполне может оказаться какой-нибудь готовой процедуркой, выложенной в сети, ибо вероятно многие сталкиваются с этой проблемой. Если у кого-то есть такой поиск, поделитесь, пожалуйста ) |
#2
|
||||
|
||||
Для первого случая достаточно AnsuUpperCase/AnsiLowerCase, со вторым сложнее.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
|||
|
|||
Цитата:
По первому: Код:
function FindSubString(Substr : String; Str : String) : Boolean; begin Result := Pos(AnsiUpperCase(Substr),AnsiUpperCase(Str)) > 0; end; По второму - гораздо сложнее. Там надо писать довольно объемный код. Не сказал бы, что очень сложный, но покумекать придется. Последний раз редактировалось lmikle, 13.04.2013 в 03:27. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Chinvad (13.04.2013)
|
#5
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
|||
|
|||
Цитата:
а как я понимаю, это и не требуется. Необходимо только проверить те символы, начертание которых одинаково в обоих языках. но все-равно придется идти посимвольно и сравнивать. |
#7
|
||||
|
||||
Да, стандартное табличное сравнение.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
||||
|
||||
Цитата:
|
#9
|
||||
|
||||
Код:
Const Similar: record Rus,Lat: String[5]; end = (Rus:'аоерс';Lat:'aoepc'); begin for i := 1 to 5 do S := StringReplace(S,Similar.Lat[i],Similar.Rus[i],[rfReplaceAll]); end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
Этот пользователь сказал Спасибо Страдалецъ за это полезное сообщение: | ||
Chinvad (13.04.2013)
|
#10
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
||||
|
||||
ну если уж вы хотите облегчить жизнь пользователю, тогда вам придется и текст в ошибочной раскладке обрабатывать.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#12
|
||||
|
||||
Более детально опишите проблему.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 13.04.2013 в 16:12. |
#13
|
|||
|
|||
Всем спасибо за внимание к проблеме ) А проблема, если уж совсем конкретизировать, в следующем. Например, в магазине вводят приход краски "10P соколор". При этом продавец может ввести и "10P Соколор" и много как еще (я вообще не удивилась бы, если соколор пишется по английски в накладных), причем "Р" может быть как в русской раскладке, так и в английской. А по базе ТМЦ нужно организовать поиск. И поиском пользуются не всегда те, кто как попало вводит данные.
|
#14
|
||||
|
||||
Для данного случая достаточно составить таблицу соответствий букв с одинаковым написанием
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Chinvad (14.04.2013)
|
#15
|
||||
|
||||
Эээээ.... А я чуть ранее разве уже не дал код для этого?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |