регистронезависимое сравнение строк
От: s.ts  
Дата: 10.09.04 06:51
Оценка:
Hello, All!

Такая проблема. Даже и не проблема вовсе, а хочется посмотреть типовые решения. М.б. шаблоны проектирования есть какие на это счет.
Некоторый атрибут класса строкового типа задается пользователем. При этом в системе его значение сравнивается со значениями других атрибутов регистронезависимо. Естественным является желание для повышения быстродействия (при регистронезависимых сравнениях) привести все сравниваемые строки к одному регистру заранее, т.е. в момент установки значения атрибута приводить его, скажем, к верхнему регистру. Но при этом исходное значение теряется, а нужно его иметь (например, для выдачи диагностических сообщений — там регистр символов д.б. таким, как его задали).
Какие есть мысли по реализации этого дела ?
Posted via RSDN NNTP Server 1.9 gamma
Re: регистронезависимое сравнение строк
От: hrg Россия  
Дата: 10.09.04 07:04
Оценка:
s.ts -> "регистронезависимое сравнение строк" :

s> Такая проблема. Даже и не проблема вовсе, а хочется посмотреть

s> типовые решения. М.б. шаблоны проектирования есть какие на это счет.
s> Некоторый атрибут класса строкового типа задается пользователем. При
s> этом в системе его значение сравнивается со значениями других
s> атрибутов регистронезависимо. Естественным является желание для
s> повышения быстродействия (при регистронезависимых сравнениях)
s> привести все сравниваемые строки к одному регистру заранее, т.е. в
s> момент установки значения атрибута приводить его, скажем, к верхнему
s> регистру. Но при этом исходное значение теряется, а нужно его иметь
s> (например, для выдачи диагностических сообщений — там регистр
s> символов д.б. таким, как его задали).
s> Какие есть мысли по реализации этого дела ?

Эээээ... дублировать атрибуты, занося в приватные преобразоанные строки и
написать хитрый ацессор, который для операции сравнения будет поставлять
его?

Yury Kopyl aka hrg | http://id.totem.ru | "бысто сп..ил и ушел — называется
нашел..."
Posted via RSDN NNTP Server 1.9 gamma
Re[2]: регистронезависимое сравнение строк
От: s.ts  
Дата: 10.09.04 07:24
Оценка:
Hello, hrg!

h> Эээээ... дублировать атрибуты, занося в приватные преобразоанные строки

h> и написать хитрый ацессор, который для операции сравнения будет
h> поставлять его?

Вряд ли получится такой нарисовать. К тому же у меня не С++ (там еще м.б. был бы шанс )
Posted via RSDN NNTP Server 1.9 gamma
Re[3]: регистронезависимое сравнение строк
От: hrg Россия  
Дата: 10.09.04 09:02
Оценка:
s.ts -> "Re[2]: регистронезависимое сравнение строк" :

s> Hello, hrg!


h>> Эээээ... дублировать атрибуты, занося в приватные преобразоанные

h>> строки и написать хитрый ацессор, который для операции сравнения
h>> будет поставлять его?

s> Вряд ли получится такой нарисовать. К тому же у меня не С++ (там еще

s> м.б. был бы шанс )

Хм... тогда может сделать дубляж атрибутов и реализовать метод
obj1.Compare(obj2), который будет сравнивать эти поля?

Yury Kopyl aka hrg | http://id.totem.ru | "мы не пьем — мы лечимся..."
Posted via RSDN NNTP Server 1.9 gamma
Re: регистронезависимое сравнение строк
От: Eugene Kilachkoff Россия  
Дата: 10.09.04 09:06
Оценка:
Здравствуйте, s.ts, Вы писали:

ST>Hello, All!


ST>Такая проблема. Даже и не проблема вовсе, а хочется посмотреть типовые решения. М.б. шаблоны проектирования есть какие на это счет.

ST>Некоторый атрибут класса строкового типа задается пользователем. При этом в системе его значение сравнивается со значениями других атрибутов регистронезависимо. Естественным является желание для повышения быстродействия (при
Сделать регистронезависимость свойством операции сравнения ?
Добиться этого можно, например, сравнивая не сами символы, а значения некоторой функции от них, которая будет равной для 'A' и 'a'.
Re[4]: регистронезависимое сравнение строк
От: s.ts  
Дата: 10.09.04 09:17
Оценка:
Hello, hrg!
You wrote on Fri, 10 Sep 2004 09:02:05 GMT:

h> s.ts -> "Re[2]: регистронезависимое сравнение строк" :


s>> Hello, hrg!


h>>> Эээээ... дублировать атрибуты, занося в приватные преобразоанные

h>>> строки и написать хитрый ацессор, который для операции сравнения
h>>> будет поставлять его?

s>> Вряд ли получится такой нарисовать. К тому же у меня не С++ (там еще

s>> м.б. был бы шанс )

h> Хм... тогда может сделать дубляж атрибутов и реализовать метод

h> obj1.Compare(obj2), который будет сравнивать эти поля?

h> Yury Kopyl aka hrg | http://id.totem.ru | "мы не пьем — мы лечимся..."


Ну да. Что-то типа того и выходит. Думал, может можно получше. Если делать на языке где операторы переопределяются и существуют статические объекты, то можно было бы что-то типа DualString сделать. и им пользоваться. У меня дельфи. А на дельфи тут умрешь создавать эти свойства, потом их нужно удалять, следить за копированием (все по ссылке)... Разве что интерфейс сделать... все равно фигня.
Posted via RSDN NNTP Server 1.9 gamma
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.