Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сравнить 2 строки case insensitive ? / 25 сообщений из 38, страница 1 из 2
27.12.2018, 09:52
    #39753767
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
Добрый день, какой правильный способ сравнить 2 строки case insansitive ?
Надо что бы 'Папа' = 'папа'
И что бы 'Папааа'+1ГБ <> 'мамааа'+1ГБ
Как использовать IEqualityComparer, и можно ли использовать его тут ?
...
Рейтинг: 0 / 0
27.12.2018, 09:56
    #39753769
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
AnsiCompareText
...
Рейтинг: 0 / 0
27.12.2018, 09:57
    #39753770
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
- Luke, use ToLowerInvariant or ToUpperInvariant to compare case insensitive.


http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.SysUtils.TStringHelper
...
Рейтинг: 0 / 0
27.12.2018, 09:57
    #39753771
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
ShowMessage('TEST'.ToLowerInvariant.Contains('t').ToString(TUseBoolStrs.True));
...
Рейтинг: 0 / 0
27.12.2018, 09:59
    #39753772
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_CompareText@string@string.html]http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_CompareText@string@string.html

CompareText compares S1 and S2 and returns 0 if they are equal. If S1 is greater than S2, CompareText returns an integer greater than 0. If S1 is less than S2, CompareText returns an integer less than 0. CompareText is not case sensitive and is not affected by the current locale.
...
Рейтинг: 0 / 0
27.12.2018, 10:01
    #39753777
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
JaDi,

Меня пугает слово Ansi в юникоде.
...
Рейтинг: 0 / 0
27.12.2018, 10:05
    #39753779
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
X11,

Я знал, что предложат использовать что-то ToLower.
Но использовать это нельзя.
Сначала ToLower должна перевести 2 строки по 1ГБ текста в нижний регистр, а потом увидит, что различается первый символ.
...
Рейтинг: 0 / 0
27.12.2018, 10:26
    #39753787
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
Valery_BЯ знал, что предложат использовать что-то ToLower.
Но использовать это нельзя.
Сначала ToLower должна перевести 2 строки по 1ГБ текста в нижний регистр, а потом увидит, что различается первый символ.
Хочешь остановить прогресс? Для чего тогда наращивать гигабайты и гигагерцы?
...
Рейтинг: 0 / 0
27.12.2018, 10:31
    #39753790
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
wadmanХочешь остановить прогресс?

Нет. Я хочу сравнить 2 строки между собой.
...
Рейтинг: 0 / 0
27.12.2018, 10:35
    #39753792
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
Valery_BJaDi,

Меня пугает слово Ansi в юникоде.

Зря. Достаточно один раз кликнуть, что бы реализацию посмотреть.
...
Рейтинг: 0 / 0
27.12.2018, 10:38
    #39753794
Фэйтл Эра
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
[quot makhaon]Valery_BJaDi,

Меня пугает слово Ansi в юникоде.

Зря.
ANSI на ASCII похоже, вот и страшно.
...
Рейтинг: 0 / 0
27.12.2018, 10:45
    #39753801
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
27.12.2018 9:52, Valery_B пишет:

> Надо что бы
> 'Папа' = 'папа'

AnsiSameText()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.12.2018, 10:47
    #39753802
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
Valery_BX11,

Я знал, что предложат использовать что-то ToLower.
Но использовать это нельзя.
Сначала ToLower должна перевести 2 строки по 1ГБ текста в нижний регистр, а потом увидит, что различается первый символ.
В лоб... переводи посимвольно и сравнивай символы... или чанками...
...
Рейтинг: 0 / 0
27.12.2018, 12:03
    #39753833
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
X11 http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_CompareText@string@string.html]http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SysUtils_CompareText@string@string.html
CompareText compares S1 and S2 and returns 0 if they are equal. If S1 is greater than S2, CompareText returns an integer greater than 0. If S1 is less than S2, CompareText returns an integer less than 0. CompareText is not case sensitive and is not affected by the current locale.

Только лучше Ansi CompareText(), т.к. простой CompareText() (который без LocaleOptions) не-ascii символы сравнивает побайтно.
...
Рейтинг: 0 / 0
27.12.2018, 13:33
    #39753887
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
[quot Фэйтл Эра]makhaonпропущено...


Зря.
ANSI на ASCII похоже, вот и страшно.

ANSI и ASCII соотносятся примерно так же, как канал и канализация :)
...
Рейтинг: 0 / 0
27.12.2018, 14:14
    #39753910
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
[quot makhaon]Фэйтл Эрапропущено...


ANSI и ASCII соотносятся примерно так же, как канал и канализация :)

как гонорея и гонорар
...
Рейтинг: 0 / 0
27.12.2018, 14:19
    #39753914
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
AnsiSameText / AnsiCompareText те еще бомбы замедленного действия
...
Рейтинг: 0 / 0
27.12.2018, 15:42
    #39753985
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
Valery_BСначала ToLower должна перевести 2 строки по 1ГБ текстаА вы переводите по 4К
...
Рейтинг: 0 / 0
27.12.2018, 16:03
    #39753994
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
asviridenkovAnsiSameText / AnsiCompareText те еще бомбы замедленного действия
Если работать с английский/русским текстом будут проблемы когда-нибудь?
...
Рейтинг: 0 / 0
27.12.2018, 16:06
    #39753997
asviridenkov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
JaDiasviridenkovAnsiSameText / AnsiCompareText те еще бомбы замедленного действия
Если работать с английский/русским текстом будут проблемы когда-нибудь?

Зависит от локали в системе
...
Рейтинг: 0 / 0
27.12.2018, 16:42
    #39754021
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
JaDiЕсли работать с английский/русским текстом будут проблемы когда-нибудь?
Если строки юникодовые то не будет.
...
Рейтинг: 0 / 0
27.12.2018, 16:55
    #39754032
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
27.12.2018 16:06, asviridenkov пишет:
> Зависит от локали в системе

только если сознательно отказаться от MBCS.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.12.2018, 17:07
    #39754044
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
Valery_BДобрый день, какой правильный способ сравнить 2 строки case insansitive ?
Надо что бы 'Папа' = 'папа'
И что бы 'Папааа'+1ГБ <> 'мамааа'+1ГБ
Как использовать IEqualityComparer, и можно ли использовать его тут ?Если вопрс упирается в быстродействие - сначала сравни длину строк а потом сравнивай их по частям. По 100*(номер итерации) символов, к примеру.
...
Рейтинг: 0 / 0
27.12.2018, 17:24
    #39754055
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
rgreatЕсли вопрс упирается в быстродействие - сначала сравни длину строк а потом сравнивай их по частям. По 100*(номер итерации) символов, к примеру.Нельзя. Строки могут быть одинаковыми при разной длине. Например: Krijshof и Krijshof
...
Рейтинг: 0 / 0
27.12.2018, 17:27
    #39754059
Valery_B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сравнить 2 строки case insensitive ?
_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
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как сравнить 2 строки case insensitive ? / 25 сообщений из 38, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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