powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сравнить 2 строки case insensitive ?
13 сообщений из 38, страница 2 из 2
Как сравнить 2 строки case insensitive ?
    #39754061
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

А кто нормализацию не делает тот ссзб
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754083
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B_Vasilisk_А вы переводите по 4К
rgreatЕсли вопрс упирается в быстродействие - сначала сравни длину строк а потом сравнивай их по частям. По 100*(номер итерации) символов, к примеру.
Вопрос - т.е. сравнение case insensitive я должен писать с нуля?

На C# пишется так:
Код: c#
1.
2.
3.
4.
5.
var s = "Всем Привет";
if (s.Equals("всем привет", StringComparison.InvariantCultureIgnoreCase) == true)
    return "equal";
else
    return "not equal";


Результат:
equal

И в Delphi так можно
Код: pascal
1.
2.
3.
4.
var
  b: Boolean;
begin
  b := string.Compare('Папа', 'папа', [TCompareOption.coIgnoreCase]) = 0;
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754097
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyА кто нормализацию не делает тот ссзб
Не всегда нужно. Про NFKD и NFKC вообще не так много кто знает, а AnsiCompareText справиться с большинством ситуаций. Для экзотики уже пусть играются с флагами CompareStringW и CompareStringEx
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754099
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyJaDiЕсли работать с английский/русским текстом будут проблемы когда-нибудь?
Если строки юникодовые то не будет.

Зря так думаешь
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754101
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkovЗря так думаешь
Давай пример с проблемами.
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754104
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteИ в Delphi так можно
Код: pascal
1.
2.
3.
4.
var
  b: Boolean;
begin
  b := string.Compare('Папа', 'папа', [TCompareOption.coIgnoreCase]) = 0;


Это в итоге вызов CompareString из WinAPI.
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754108
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatЭто в итоге вызов CompareString из WinAP
AnsiCompare... тоже.
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754116
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatX-CiteИ в Delphi так можно
Код: pascal
1.
2.
3.
4.
var
  b: Boolean;
begin
  b := string.Compare('Папа', 'папа', [TCompareOption.coIgnoreCase]) = 0;


Это в итоге вызов CompareString из WinAPI.
В C# это выльется в вызов CompareStringEx из WinApi
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754147
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754160
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигня это всё. Вы опечатки отловите, а Чувствительность к регистру символов дело поправимое
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754182
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гирлионайльдо InternalCompareStringOrdinalIgnoreCase
Это в Mono... Я только что проверил, в консольном приложении на .Net идет вызов CompareStringEx
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754340
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite
Код: pascal
1.
string.Compare('Папа', 'папа', [TCompareOption.coIgnoreCase]) = 0;


ок, так у буду делать.
Но сравнение с нулём выглядит как-то не понятно.
X-CiteВ C# это выльется в вызов CompareStringEx из WinApi

Не верное утверждение для .NET
Ты не можешь точно знать, что там он в результате сделает, да это и не нужно знать.
Это зависит от конкретной связки версии ОС + .NET
NET.Core может вызывать другую функцию.
...
Рейтинг: 0 / 0
Как сравнить 2 строки case insensitive ?
    #39754540
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BX-Cite
Код: pascal
1.
string.Compare('Папа', 'папа', [TCompareOption.coIgnoreCase]) = 0;


ок, так у буду делать.
Но сравнение с нулём выглядит как-то не понятно.
X-CiteВ C# это выльется в вызов CompareStringEx из WinApi

Не верное утверждение для .NET
Ты не можешь точно знать, что там он в результате сделает, да это и не нужно знать.
Это зависит от конкретной связки версии ОС + .NET
NET.Core может вызывать другую функцию.

.Net Framework 4.5.1 Console Application вызывается CompareStringEx
.Net Core 2.2 Вызывает что-то свое, но активно юзает мультибайтовые winapi
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сравнить 2 строки case insensitive ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]