Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2008, 15:19   #1
HOMER
 
Регистрация: 14.12.2007
Сообщений: 5
Вопрос Сравнение строк

С НАСТУПИВШИМ ВСёХ!!!!!!
И я опять за помощью. Надобно сравнить две строки, но чтоб всемогущий DELPHI не обращал внимание на буквенный регистр. На пример ‘ЗАЛИПУКА’ и ‘залИпУка’ Delphi должен сказать, что строки одинаковые. Вроде функция есть, но я найти не могу.
HOMER вне форума Ответить с цитированием
Старый 03.01.2008, 15:25   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Цитата:
Цитата:
Цитата:Сообщение от LeoN
когда я пишу цикл открыть файл
If (raz='.gtp') or (raz='.GTP') or (raz='.ptb') or (raz='.PTB') or (raz='.gp3') or (raz='.GP3') then
ShellExecute(Handle,'open',PChar(Fo rm1.FileListBox 1.FileName),nil,nil,SW_SHOWNORMAL);
Он мне открывает нужные но что если будет не GP3 а Gp3?как сделать не восприимчивость к регистру?
If ((UpperCase(raz)='.GTP') or (UpperCase(raz)='.PTB') or (UpperCase(raz)='.GP3')) then
http://www.programmersforum.ru/showthread.php?t=2701

и

Цитата:
Функция UpperCase создает копию MixedString со всеми символами преобразованными в верхний регистр.

Эта функция является устаревшей, используйте вместо неё AnsiUpperCase, которая принимает во внимание многобайтовые строки, и символы с диакритическим знаком.
http://delphibasics.ru/UpperCase.php
Alar вне форума Ответить с цитированием
Старый 03.01.2008, 16:38   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Можно ещё через API
Код:
If lstrcmpi(pchar('stroka1'), pchar('StROKa1')) = 0 
then ShowMessage('Строки одинаковые')
Думаю должно работать, не проверял
пыщь
JTG вне форума Ответить с цитированием
Старый 03.01.2008, 16:46   #4
Ins
Форумчанин
 
Регистрация: 29.12.2007
Сообщений: 137
По умолчанию

AnsiCompareText сравнивает строки без учета регистра:

Код:
if AnsiCompareText('пРивЕт','привет') = 0 then
  ShowMessage('Равны')
else
  ShowMessage('Не равны');
Ins вне форума Ответить с цитированием
Старый 03.01.2008, 18:08   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Ins, совсем забыл


Цитата:
Функция AnsiCompareStr сравнивает String1 и String2 на равенство, игнорируя регистр.

Это современная Региональная безопасная форма CompareStr.

Все Ansi команды поддержкой многобайтовые символы.

Она возвращает следующие значения:

String1: отрицательное число
String1 = String2: 0
String1 > String2: положительное число

Сравнение не затрагивает длину оно выполняется по буквам. Но более длинная строка больше чем короткая.
http://delphibasics.ru/AnsiCompareText.php
Alar вне форума Ответить с цитированием
Старый 03.01.2008, 18:36   #6
Ins
Форумчанин
 
Регистрация: 29.12.2007
Сообщений: 137
По умолчанию

Alar, в вашей ссылке все напутано, то пишут AnsiCompareText, то AnsiCompareStr.

Цитата:
Функция AnsiCompareStr сравнивает String1 и String2 на равенство, игнорируя регистр.
Вот это как раз и неверно, AnsiCompareStr учитывает регистр, а AnsiCompareText - игнорирует. Лучше по стандартной справке описание смотреть.
Ins вне форума Ответить с цитированием
Старый 03.01.2008, 18:39   #7
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

http://delphibasics.ru/AnsiCompareStr.php -
возможно, положил топик в закладки, позже исправлю.

На сайте есть даже частично русифицированная справка, только не все ее читают
Alar вне форума Ответить с цитированием
Старый 04.01.2008, 05:53   #8
HOMER
 
Регистрация: 14.12.2007
Сообщений: 5
По умолчанию

Спасиб... Всем)) AnsiCompareText-попёрло!!!!
HOMER вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сравнение дат Geddar Общие вопросы Delphi 2 04.06.2008 19:09
Сравнение строк Elm0 Паскаль, Turbo Pascal, PascalABC.NET 2 02.06.2008 09:31
нужна помощь, сравнение строк в Си 3.1 feranic Помощь студентам 5 24.04.2008 17:57
Excel max 256 строк VS user надо 300 строк Exo Microsoft Office Excel 3 10.01.2008 17:14
Сравнение 2-х файлов asale Microsoft Office Excel 17 03.06.2007 15:58