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

Вниз

Имееться ListView в котором надо сортировать числа.   Найти похожие ветки 

 
Gemini   (2004-06-15 16:04) [0]

Необходимо производить сортировку чисел. Причем числа могут быть как 3 значные (285) так и 32 значные (80503453473636223464357845345678) . Как тут поступить. К какому типу отнести 32 значные числа?


 
Mim1 ©   (2004-06-15 19:40) [1]

Можно создать невидимый столбец при добавлении строки в который будет записвается число дополеное нулями, например 00000001,  00000432. Сортировать по нему.


 
Gemini   (2004-06-15 20:53) [2]

А как кстати создать в ListView невидимый столбец?
И какой тип у 32 значного числа?


 
Vit@ly ©   (2004-06-15 20:58) [3]

Возможно используя свойство Width. И параллельно: в чем прикол (смысл)?


 
Gemini   (2004-06-15 21:05) [4]

Я не знаю к какому типу отнести 32 разрядное число!!! К integer? или к Extended? Но у них длина числа 19-20 знаков


 
panov ©   (2004-06-15 21:47) [5]

Используй расширенную сортировку в TStringList - TStringList.CustomSort для нужных значений.


 
Mim1 ©   (2004-06-15 22:27) [6]

Каюсь, можно проще
используйте sotytype = stData и событие OnCompare
при

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
begin
 Compare :=  strtoint(item1.caption) - strtoint(item2.caption);
end;

если числа не в первом столбце то
item1.caption заменить на item1.subitems[3], где 3 - номер столбца +2.


 
Gemini   (2004-06-16 00:03) [7]

К сожалению при попытке преобразования
StrToInt(234295834958234958239458) возникнет ошибка


 
JohnnyJ   (2004-06-16 11:23) [8]


> К сожалению при попытке преобразования
> StrToInt(234295834958234958239458) возникнет ошибка


Тогда StrToInt8 :)


 
Digitman ©   (2004-06-16 11:42) [9]

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
var
 Text1, Text2: String;
begin
Text1 := StringOfChar("0", 32);
Text2 := StringOfChar("0", 32);
StrCopy(@Text1[32 - Length(Item1.Caption) + 1], PChar(Item1.Caption));
StrCopy(@Text2[32 - Length(Item2.Caption) + 1], PChar(Item2.Caption));
Compare :=  CompareText(Text1, Text2);
end;


 
Gemini   (2004-06-16 13:45) [10]

Огромное спасибо!



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

Форум: "Основная";
Текущий архив: 2004.07.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.052 c
14-1087149961
default
2004-06-13 22:06
2004.07.04
Задачка


8-1082481546
anochild
2004-04-20 21:19
2004.07.04
Как взять конкретный кадр из avi?


9-1079030091
010101001010001010101001
2004-03-11 21:34
2004.07.04
АРКАНОЙД


1-1087400397
Стас
2004-06-16 19:39
2004.07.04
Помогите найти компонент для Delphi7- smpp connector


3-1086866596
Artem03
2004-06-10 15:23
2004.07.04
Аналог функций CONVERT или CAST в Informix 9





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский