Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
14-48739
Абрамович
2003-08-27 15:50
2003.09.15
Самая великая программа


14-48715
Grant
2003-08-28 10:51
2003.09.15
Класс TList


4-48840
msa
2003-07-16 10:48
2003.09.15
Как найти по имени COM-объекта по к его dll?


1-48501
hfa
2003-09-02 18:21
2003.09.15
При установки нового пакета с компонентами вылезает ошибка типа


1-48607
Song
2003-08-30 18:06
2003.09.15
Нету ли директивы компилятора, которая показывает строку в коде





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский