Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ] > Код на шару!
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.04.2013, 00:08
Chinvad Chinvad вне форума
Прохожий
 
Регистрация: 23.11.2011
Сообщения: 23
Репутация: 10
По умолчанию Умный поиск

Здравствуйте! Мне нужно организовать такой поиск, где во введенной строке взаимозаменялись следующие виды символов:
-заглавная и строчная буква (Слово = слово, СЛОВО = слово)
-буквы с аналогичным написанием в латинице и кириллице.
Не то чтобы мне хотелось просить кого-то из форумчан писать с нуля этот код... просто думается, что он вполне может оказаться какой-нибудь готовой процедуркой, выложенной в сети, ибо вероятно многие сталкиваются с этой проблемой. Если у кого-то есть такой поиск, поделитесь, пожалуйста )
Ответить с цитированием
  #2  
Старый 13.04.2013, 00:49
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для первого случая достаточно AnsuUpperCase/AnsiLowerCase, со вторым сложнее.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 13.04.2013, 01:39
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Всё ж просто. Вот ссылка
Ответить с цитированием
  #4  
Старый 13.04.2013, 02:07
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Uniq!
Всё ж просто.
Ишь размечтался. Мало того что, самое простое, проверить подстановку одинаковых по написанию символов, сложнее другое - нет единого правила транскрипции сиволов "ч", "ш" и подобных.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 13.04.2013, 03:28
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от angvelem
Ишь размечтался. Мало того что, самое простое, проверить подстановку одинаковых по написанию символов, сложнее другое - нет единого правила транскрипции сиволов "ч", "ш" и подобных.

а как я понимаю, это и не требуется. Необходимо только проверить те символы, начертание которых одинаково в обоих языках. но все-равно придется идти посимвольно и сравнивать.
Ответить с цитированием
  #6  
Старый 13.04.2013, 03:31
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Да, стандартное табличное сравнение.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 13.04.2013, 10:13
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от angvelem
Ишь размечтался.
Не усложняйте
Ответить с цитированием
  #8  
Старый 13.04.2013, 10:16
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Код:
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)
  #9  
Старый 13.04.2013, 12:51
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Uniq!
Не усложняйте
Усложняю не я, а пользователи, которые могут ввести в поисковую строку всё что угодно.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #10  
Старый 13.04.2013, 01:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Chinvad
Здравствуйте! Мне нужно организовать такой поиск, где во введенной строке взаимозаменялись следующие виды символов:
-заглавная и строчная буква (Слово = слово, СЛОВО = слово)
-буквы с аналогичным написанием в латинице и кириллице.
Не то чтобы мне хотелось просить кого-то из форумчан писать с нуля этот код... просто думается, что он вполне может оказаться какой-нибудь готовой процедуркой, выложенной в сети, ибо вероятно многие сталкиваются с этой проблемой. Если у кого-то есть такой поиск, поделитесь, пожалуйста )

По первому:
Код:
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)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:07.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter