Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

TStringList невзирает на регистр!   Найти похожие ветки 

 
Basilio ©   (2003-09-04 16:08) [0]

Когда в TStringList добавляю строки, то "aaa" и "AAA" считаются дубликатами! можно это как-нибудь обойти?

Лист создаю так:

SL:=TStringList.Create;
SL.Duplicates:=dupIgnore;
SL.Sorted:=true;


Посмотрел в исходниках: В методе Add вызывается Find, который выглядит так:

function TStringList.Find(const S: string; var Index: Integer): Boolean;
var
L, H, I, C: Integer;
begin
Result := False;
L := 0;
H := FCount - 1;
while L <= H do
begin
I := (L + H) shr 1;
C := AnsiCompareText(FList^[I].FString, S);
if C < 0 then L := I + 1 else
begin
H := I - 1;
if C = 0 then
begin
Result := True;
if Duplicates <> dupAccept then L := I;
end;
end;
end;
Index := L;
end;


Т.е. внутри зашито безразличие к регистру. можно ли это обойти?
(не создавая своего собственного TStringList"a)


 
Skier ©   (2003-09-04 16:09) [1]


> Т.е. внутри зашито безразличие к регистру. можно ли это
> обойти?
> (не создавая своего собственного TStringList"a)

Нет.


 
Reindeer Moss Eater ©   (2003-09-04 16:10) [2]

Duplicates:=dupAccept


 
mrcat ©   (2003-09-04 16:10) [3]

CaseSensitive ?


 
ZEE ©   (2003-09-04 16:12) [4]

>внутри зашито безразличие к регистру
тоесть зашито?, а TStringList.CaseSensitive тогда зачем?


 
Skier ©   (2003-09-04 16:14) [5]


> TStringList.CaseSensitive

Это из какого Delphi ?
Я в D5 не нашёл...(только у TDirectoryListBox)


 
Reindeer Moss Eater ©   (2003-09-04 16:14) [6]

нету CaseSensitive в D5


 
Basilio ©   (2003-09-04 16:14) [7]

> to Reindeer Moss Eater
Дубликаты нужно отсеивать. А "aaa" и "AAA" я не считаю дубликтами
> to mrcat
к сожалению в SL не предусмотрен параметр CaseSensitive - для того, чтобы внутри использовался другой метод сравнения.. (D5) :(
> to Skier
Ок. будем свой ваять
> to all
А в документации про то, что SL не CaseSesitive -- ни слова!
ща на седьмых проверю


 
ZEE ©   (2003-09-04 16:16) [8]

>Это из какого Delphi ?
>Я в D5 не нашёл...(только у TDirectoryListBox)
это из Д6 :) сори, топик невнимательно прочитал


 
mrcat ©   (2003-09-04 16:17) [9]

Basilio © (04.09.03 16:14)

в D5 можете наследника сделать с явным указанием AnsiCompareStr.


 
Basilio ©   (2003-09-04 16:18) [10]

ага. в седьмых это подправлено


 
Skier ©   (2003-09-04 16:20) [11]

function TStringList.Find(const S: string; var Index: Integer): Boolean; virtual;

virtual главное твоё оружие. Если в D5...



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
1-48597
Basilio
2003-09-04 16:31
2003.09.15
Рождение потомка TStringList


1-48637
lipskiy
2003-08-30 21:40
2003.09.15
Как заставить работать прокрутку колесом в TWebBroiwser...


3-48436
boka
2003-08-25 12:09
2003.09.15
цветной DBGrid


1-48526
elf
2003-09-02 13:37
2003.09.15
savedialog1.filename


8-48657
zolotov
2003-05-06 12:40
2003.09.15
Проигрывание звуков