Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 884

/ вопрос решён /

Здравствуйте, уважаемые эксперты! Как сделать поиск по тексту чтобы при этом не учитывался регистр букв?

eclipse Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: eclipse (статус: Посетитель)
Вопрос отправлен: 5 января 2011, 15:22
Состояние вопроса: решён, ответов: 1.

Ответ #1. Отвечает эксперт: min@y™

Ну, для начала, ищешь:

function PosIgnoreCase(const Substr, S: string): Integer;
begin
  Result:= Pos(UpperCase(Substr), UpperCase(S));
end;
Затем копируешь функцией Copy(), где индекс - результат функции PosIgnoreCase(). Написать, как ею пользоваться, или сам знаешь?

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 5 января 2011, 16:33
Оценка за ответ: 5

Комментарий к оценке: я так и знал

Мини-форум вопроса

Всего сообщений: 8; последнее сообщение — 5 января 2011, 19:17; участников в обсуждении: 3.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 5 января 2011, 15:28 [#1]:

Привести обе строки к одному регистру и потом искать.
eclipse

eclipse (статус: Посетитель), 5 января 2011, 15:31 [#2]:

Блин немного не так задал вопрос... Как перевести то я знаю UpperCase() или LowerCase() ... а вот как найти в тексте нужную строку и скопировать без изменения регистра букв?
eclipse

eclipse (статус: Посетитель), 5 января 2011, 16:52 [#3]:

Я примерно так и предполагал, но думал мож есть какая функция.

5 января 2011, 16:53: Статус вопроса изменён на решённый (изменил автор вопроса — eclipse): решён

5 января 2011, 17:07: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.

eclipse

eclipse (статус: Посетитель), 5 января 2011, 18:17 [#4]:

В бщем немного поколдовал и вот так получилось:

procedure TForm1.CopyCase(NeededString, OldString, SearchString: string);
var ss, ss2, ss3: string;
i, x, positia, positia2: Integer;
function IsLowerCase(Ch: Char): boolean;
begin
Result:=Ch=AnsiLowerCase(Ch);
end;
begin
ss:= SearchString;
ss2:= Copy(ss, Pos(OldString, LowerCase(ss)), Length(OldString));
if Length(NeededString) <> Length(OldString) then
ss2:= Copy(ss2, 0, Length(ss2) - Length(NeededString));
ss3:= NeededString;
ShowMessage(ss2);
for x:=0 to Length(ss2) do
if IsLowerCase(ss2[x]) then
ss3[x]:=ansilowerCase(ss3[x])[1]
else
ss3[x]:=ansiUpperCase(ss3[x])[1];
ShowMessage(ss3);
ss:= Copy(ss, 0, Pos(OldString, LowerCase(ss))-1) + ss3 + Copy(ss, Pos(OldString, LowerCase(ss)) + 10, MaxInt);
ShowMessage(ss);
end;

Ну тут, как говорится, тока приготовилось... есть лишние моменты.
min@y™

min@y™ (статус: Доктор наук), 5 января 2011, 18:55 [#5]:

Ёпрст! Ды шо ж вы все лепите код без форматирования, а??!!11 Ну вот как его читать?! Шож за матьтвою?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 5 января 2011, 18:58 [#6]:

Особенно прикалывают индивиды, вываливающие целые полотенца кода без форматирования и (тем более) комментариев с просьбой найти ошибку. ЩАС!!! ЩАС ВСЁ БРОШУ И БУДУ РАСШИФРОВЫВАТЬ! Ога...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
eclipse

eclipse (статус: Посетитель), 5 января 2011, 19:06 [#7]:

ЫЫЫЫЫЫ Да ладно ты min@y! я так... чисто то что получилось метолом тыка кинул... написал же... а потом всё приведу в человеческий вид.
min@y™

min@y™ (статус: Доктор наук), 5 января 2011, 19:17 [#8]:

Вот приведи сначала в Ч.В., а потом вываливай.
И не надо коверкать мой ник!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 16:42
Выполнено за 0.02 сек.