Главная страница
    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
14-1093343712
elected
2004-08-24 14:35
2004.09.12
Предлагаю сделать новый раздел в форумах "Работа"


9-1084901352
microland
2004-05-18 21:29
2004.09.12
Построение морского боя


4-1091041350
Sulimxar
2004-07-28 23:02
2004.09.12
Окно между курсором и формой


1-1093529823
aliced
2004-08-26 18:17
2004.09.12
опять пропала главная панель Делфи


14-1093265478
Kerk
2004-08-23 16:51
2004.09.12
Жизнь прекрасна!





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