Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2011, 19:05   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Список интов/Динамичейский массив

В С++ есть и vector и List<int>. В делфи нашёл TList. Но хочется что-то вроде TStringList - чтобы была функция IndeокиxOf(s: string) (только не от строки, а от числа). Самому лень писать, да и долго работать наверно будет пузырьком если сделать =\
TwiX вне форума Ответить с цитированием
Старый 16.06.2011, 21:21   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
var i: Integer;
...
StringList.AddObject('ТЕКСТ',TObject(i));  //i>=0
...
StringList.IndexOfObject(TObject(i));
+В TList тоже можно в Pointer Integer загонять, ну и искать потом с помощью IndexOf
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 16.06.2011 в 21:36.
Аватар вне форума Ответить с цитированием
Старый 16.06.2011, 21:39   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

StringList слишком много ресурсов жрёт.
А если в TList загонять, то с помощью IndexOf нельзя будет искать. Там нужно указатель передовать
TwiX вне форума Ответить с цитированием
Старый 16.06.2011, 21:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
var xList: Tlist;
    i,j: Integer;
begin
  xList:=Tlist.Create;
  i:=5;   xList.Add(Pointer(i));
  i:=15;  xList.Add(Pointer(i));
          xList.Add(Pointer(100));

  j:=xList.IndexOf(Pointer(5));      //  j=0
  j:=xList.IndexOf(Pointer(15));     // j=1
  j:=xList.IndexOf(Pointer(100));     // j=2
end;
Отрицательные нельзя
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 16.06.2011 в 22:02.
Аватар вне форума Ответить с цитированием
Старый 16.06.2011, 22:32   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> Отрицательные нельзя

можно.

Да, и в Дельфи тоже есть TList<Integer>:

Код:
uses
  Generics.Collections;

var
  LL: TList<Integer>;
begin
  LL := TList<Integer>.Create();
  LL.Add(100);
  LL.Add(-100);
  LL.Add(200);
  //
  WriteLn(LL.IndexOf(-100)); // 1
  //
  LL.Sort();
  //
  WriteLn(LL.IndexOf(-100)); // 0
  //
  LL.Free();
end;
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."

Последний раз редактировалось veniside; 16.06.2011 в 22:46.
veniside вне форума Ответить с цитированием
Старый 16.06.2011, 22:58   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Кстати искал я этот TList<Integer> - как давно юзал его. Но т.к. была подключена только Classes, он ругался) Спасибо обоим)
TwiX вне форума Ответить с цитированием
Старый 16.06.2011, 23:13   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Generics.Collections;
эмм, это случаем не Delphi.NET?
ибо очень похоже на System.Generics.Collections из dotNET.

да и синтаксис тот же.
и в особенности Генерикс
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 16.06.2011 в 23:19.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.06.2011, 23:15   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

uses Generics.Collections; это в каких дельфях? В Д7 не нашел.
Цитата:
Отрицательные нельзя
это на автомате с TObject перенёс
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.06.2011, 00:54   #9
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> эмм, это случаем не Delphi.NET?

нет, поддержку генериков ввели в CodeGear Delphi 2009, вместе с анонимными методами, перекрытием операторов и прочими модными штучками.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 17.06.2011, 02:34   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

которые помоему и работает только в dotNET проектах.
кстати ввели это все раньше, именно вместе с Delphi.NET(помоему 2007 год)

кстати генерики, это термин именно dotNET.(да и не спроста ж повторения пространства имен dotNET, кроме System, которое, как в Делфи было всегда, есть в uses постоянно, потому видимо и короче написание)
в С++ там темплейты/шаблоны.

в 2009 Делфи тестил перегрузку в простом проекте, не работало.

PS: может и не прав, буду дома перепроверю.

хотя если не затруднит, вышлите exe с этим кодом(причем чтоб использовался, а то мало ли линкер порежет) я посмотрю на предмет зависимости от dotNET.


хм, посмотрел, лишь похоже на dotNET, порядок пространств иной.
хотя все равно выложите exe.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 17.06.2011 в 02:38.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связный список, массив Ga-sergey Помощь студентам 6 24.05.2011 17:06
(BC 3.1) Список через одномерный массив Lawliet32 Помощь студентам 6 29.11.2009 19:26
Список элементов (Динамический массив) SeverBaP Помощь студентам 7 28.11.2008 15:21
Считывание интов из файла kydja Общие вопросы C/C++ 1 17.05.2008 18:16