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

Вниз

Как работать со списками List и StrListEx?   Найти похожие ветки 

 
M5   (2004-03-15 09:53) [0]

Подскажите, как работать (дайте пример) со списками List и StrListEx. Нужно создание, добавление/удаление пункта, доступ к пункту, освобождение памяти от списка. Мои переменные MyList и MyStrListEx.


 
Gandalf ©   (2004-03-15 10:48) [1]

Это пример:

 MyStrListEx:=NewStrList;
 MyStrListEx.Add("Tra-la-la")
 MyStrListEx.Insert(5,"demo line");
 MyStrListEx.Delete(4);
 tmpstr:=MyStrListEx.Items[3];
 MyStrListEx.Free;


с PList аналогично...


 
M5   (2004-03-15 17:53) [2]

Спасибо, а как объявить? Var MyList: TList или PList?


 
M5   (2004-03-15 17:55) [3]

Спасибо, а как объявить? Var MyStrList: TStrListEx или PStrListEx?


 
Gandalf ©   (2004-03-15 18:03) [4]

PList


 
M5   (2004-03-17 18:16) [5]

И еще дайте пример как задать, что список может/не может содержать дубликаты.


 
Gandalf ©   (2004-03-19 10:15) [6]

Не понял?!


 
M5   (2004-03-19 17:45) [7]

Я прочел, что в списке (н-р, строк) можно как-то задать, что при добавлении аналогичной строки (какая уже есть в списке) она будет или не будет добавляться. Дайте пример как это свойство устанавливать/сбрасывать.


 
SPeller ©   (2004-03-20 00:43) [8]

Такого свойства нет. Вручную самому придется делать прверку. Это всего лишь на одну строчку больше.

А вообще, RTFM. Для тебя там очень много полезного. Радуйся что фак ещё не сильно большой.


 
M5   (2004-03-21 10:29) [9]

Посмотрел FAQ, но не нашел многого, т.к. создатели КОЛ почему-то не сильно заботятся о совмещении КОЛ с VCL и целый ряд имен, функций, полей, методов не совпадают или вовсе отсутствуют. Справка же самого КОЛ просто не выдерживает никакой критики. Поэтому надежда на знающих людей и их ответы на такие вопросы в Д5:

1. Что происходит с памятью (на сколько память уменьшается и уменьшается ли) при

var MyStrListEx: PStrListEx;
MyStrListEx:=NewStrListEx;

или уменьшается только при

MyStrListEx.AddObject(MyAnsiStr,MyInteger);

2. На сколько память уменьшается при добавлении анси-строки (строки разной длины) и целого

MyStrListEx.AddObject(MyAnsiStr,MyInteger);

и надо ли делать при каждом добавлении проверку

try
MyStrListEx.AddObject(MyAnsiStr,MyInteger);
except
on EOutOfMemory do MessageDlg("Нет памяти",mtWarning,[mbOK],0);
end;

или достаточно только раз при

try
MyStrListEx:=NewStrListEx;
except
on EOutOfMemory do MessageDlg("Нет памяти",mtWarning,[mbOK],0);
end;

или вообще не надо?

3. Правильно ли, что память для списка файлов надо выделять так?

var MyDirList: pDirList;
MyDirList:= NewDirList ("C:\","*.*",FILE_ATTRIBUTE_NORMAL);

И как вернуть память назад системе? Достаточно ли выйти из процедуры, где память была выделена и система сама освободит память или надо делать

MyDirList:=NIL;
MyDirList.Free;

или еще что?


 
M5   (2004-03-24 18:39) [10]

Если кто-то знает, хотя бы более-менее, на каком этапе память выделяется и какими кусками и как снять вылетание проги при нехватке памяти и вернуть память, подскажите, а то все молчат.


 
Владимир Кладов   (2004-03-24 22:13) [11]

NIL.Free не будет работать. Может, зря в программисты подались? Сорри...


 
Gandalf ©   (2004-03-25 09:26) [12]

1) На все вопросы про память - открываем Диспетчер задач и смотрим что у нас твориться - там много через есть и потоки и утечки и т.п. и т.д.

2)

>MyDirList:=NIL;
>MyDirList.Free;

Совсем наооборот надо делать.

MyDirList.Free;
MyDirList:=Nil; // Это строка на любителя


 
M5   (2004-03-29 10:01) [13]

Спасибо, немного разобрался. По крайней мере, сбоев уже нет.



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

Форум: "KOL";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.037 c
6-1089188010
Maks_G
2004-07-07 12:13
2004.09.12
Проблемы с IdHTTPServer и POST


14-1093339536
WondeRu
2004-08-24 13:25
2004.09.12
Зачем клаве Scroll Lock?


1-1093707686
Seldon
2004-08-28 19:41
2004.09.12
Значение свойства из DFM


1-1093851267
digger
2004-08-30 11:34
2004.09.12
TList, освобождение


1-1093228404
Poluprovodnik
2004-08-23 06:33
2004.09.12
ListBox





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