|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
TStringList и перевод символов в нижний регистр
Добрый день. В программе для хранения и обработки текстов используется ПЕРЕМ типа TStringList
Для сравнения текстов необходимо все символы привести к нижнему регистру. Вопрос: 1. небходимо ли приводить символы к нижнему регистру при использовании Pos 2. если необходимо, то как это сделать применительно к TStringList, T2 := AnsiLowerCase(T2); для Т2:TStringList не работает. Всем ответившим - спасибо добавлю: РАД2010 и преобразовать нужно сразу все строки в ПЕРЕМ Последний раз редактировалось Pcrepair, 24.03.2012 в 12:44. |
#2
|
|||
|
|||
AnsiLowerCase принимает в качестве параметра строку. Если через него нужно привести к нижнему регистру stinglist, то надо перебирать все строки.
если не ошибаюсь, примерно так: Код:
for i:=0 to (Count - 1) do T2.Strings[i]:= AnsiLowerCase(T2.Strings[i]); //исправил, была ошибка. Естественно, если в стринглисте ansi-строки =) для юникод-строк (и для обычных string после 2009 делфи, т.к. они стали юникодными по умолчанию) код аналогичен с использованием LowerCase вместо AnsiLowerCase. Добавлено: По поводу вопроса 1. Да, необходимо, так как Pos ищет символ с конкретным кодом, а для верхнего и нижнего регистров коды разные. Как обходной вариант, можно использовать LowerCase внутри самого Pos. Тогда изначальный stringlist останется без изменений. пример: Код:
Pos(LowerCase('Подстрока'), LowerCase('Строка в которой нужно найти последовательность подстрока')); Последний раз редактировалось nixel, 24.03.2012 в 13:06. |
#3
|
|||
|
|||
вообще немного попроще получилось
T2.Text := AnsiLowerCase(T2.Text); а T2.Text := LowerCase(T2.Text); почемуто ничего не делает, хотя РАД2010 в Pos нет случайно возможности поиска по частичному совпадению ну например маразм и маразматик |
#4
|
|||
|
|||
Цитата:
Возможно в стринглисте ansi-строки, поэтому юникод-аналог процедуры не работает или работает некорректно. Цитата:
|
#5
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |