Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.034 c
1-48642
AK
2003-09-02 20:47
2003.09.15
Как скопировать внутреннюю и внешнюю часть формы чужой программы?


1-48589
download
2003-09-01 00:05
2003.09.15
Автозавершение строки при введении её в Memo


14-48718
Dred2k
2003-08-28 15:40
2003.09.15
2 Moderators Насчет форумов...


1-48516
plotn
2003-09-02 15:03
2003.09.15
нужна мемка с хайлайтингом.


1-48544
evg
2003-09-02 09:00
2003.09.15
Ошибка при выгрузке DLL.




   Наверх