Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение индекса массива, Ответьте чайнику пожалуйста! 
:(
    Опции темы
VSH
Дата 11.9.2003, 11:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Простейшая вроде функция (по значению найти индекс массива), а найти не могу. Например в басике была ArrayGetIndex. Что в Delphi?
  Вверх
<Spawn>
Дата 11.9.2003, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



А что мешает ее самому сделать?
Вот поэксперементируй:

Код
type
TDataType=(dtByte,dtWord,dtInteger);

var
 Form1: TForm1;

implementation

{$R *.dfm}

function ArrayGetIndex(Arr:Pointer;Value, ArrLength:integer;DataType:TDataType):Integer;
var
i:integer;
begin
Result:=-1;
for i:=0 to ArrLength-1 do
 case DataType of
   dtByte:
     begin
      if PByte(Arr)^=Value then
       begin
        Result:=i;
        Exit;
       end;
      Inc(PByte(Arr));
     end;
   dtWord:
     begin
      if PWord(Arr)^=Value then
       begin
        Result:=i;
        Exit;
       end;
      Inc(PWord(Arr));
     end;
   dtInteger:
     begin
      if PInteger(Arr)^=Value then
       begin
        Result:=i;
        Exit;
       end;
      Inc(PInteger(Arr));
     end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ByteArr:array[0..2] of Byte;
WordArr:array[0..3] of Word;
IntArr:array[0..1] of Integer;
begin
ByteArr[0]:=10;
ByteArr[1]:=11;
ByteArr[2]:=15;
ShowMessage(Format('Индекс равен %d',[ArrayGetIndex(@ByteArr,15,3,dtByte)]));
WordArr[0]:=100;
WordArr[1]:=1000;
WordArr[2]:=10000;
WordArr[3]:=21746;
ShowMessage(Format('Индекс равен %d',[ArrayGetIndex(@WordArr,100,4,dtWord)]));
IntArr[0]:=2134777;
IntArr[1]:=$FFFFFFFF;
ShowMessage(Format('Индекс равен %d',[ArrayGetIndex(@IntArr,$FFFFFFFF,2,dtInteger)]));
end;

end.



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0380 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.