Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.05;
Скачать: CL | DM;

Вниз

Массив   Найти похожие ветки 

 
noob ©   (2004-11-20 22:47) [0]

Как удалить i-тый елемент массива


 
Palladin ©   (2004-11-20 22:51) [1]

какого массива?


 
YurikGL ©   (2004-11-21 00:01) [2]

В частном случае, если
mas[i]:array of TEdit
то удалить можно так
mas[i].free


 
Defunct ©   (2004-11-21 00:34) [3]

> Как удалить i-тый елемент массива

Навестись в Far на файл с расширением .pas, в котором описан ваш массив, и нажать F8 потом enter.


 
noob ©   (2004-11-21 00:56) [4]

to Defunct Задоронова насмотрелся?

... массив типа string


 
Palladin ©   (2004-11-21 01:04) [5]

и что? я спрашиваю какой массив а не что в нем содержится...
из статического ты ничего не удалишь, из динамического догадайся сам, нарисуй ситуацию на листочке... в помощь: можешь глянуть справку по Move


 
Palladin ©   (2004-11-21 01:07) [6]


> [2] YurikGL ©   (21.11.04 00:01)

А это вообще описанию не поддается... какойто Pascal нового поколения, в котором можно объявить индексируемые (индексом неизвестного типа) переменные и удалить элемент массива через тотже индекс неопределенного пола поставив точку и написав четыре буквы free... компилятор сам определит что нужно удалить прокладку...


 
KilkennyCat ©   (2004-11-21 01:39) [7]


> Palladin ©   (21.11.04 01:07) [6]


Pascal## ?


 
Defunct ©   (2004-11-21 02:05) [8]

> to Defunct Задоронова насмотрелся?

Да нет, вопросов начитался.
Если вы знаете как можно иначе "удалить" i-тый элемента массива, то расскажите мне.


 
Piter ©   (2004-11-21 02:18) [9]

Ну встроенной функции вроде нету... я написал бы где-то так:

function DeleteElement(ListInt: TBoundArray; Index: integer): boolean;
var
 i: integer;
begin
 if ( Index > High(ListInt) ) or ( Index < 0 ) then
   Result := false
 else
   begin
     for i:=Index to High(ListInt) - 1 do
       ListInt[i] := ListInt[i+1];
     SetLength(ListInt, Length(ListInt) - 1);
     Result := true;
   end;
end;


Это соответственно удаление элемента из динамического массива чисел integer (вроде это нужно автору, как я понял).

С другой стороны код очевиден и странно что самому нельзя догадаться...


 
KilkennyCat ©   (2004-11-21 03:16) [10]


> чисел integer (вроде это нужно автору, как я понял).


неа, он там пишет, что стринг...

чтож, ежели стринг рассматривать как массив...

delete(s,i,1) - по памяти, мож и ошибся...


 
Defunct ©   (2004-11-21 04:53) [11]

> delete(s,i,1) - по памяти, мож и ошибся...

да не.. F8 там самое то!
нет программы - нет проблем :)


 
SergP ©   (2004-11-21 08:49) [12]

Что-то в последнее время сабжевый вопрос начал многих интересовать, типа как раньше когда-то всех интересовало "как запендюрить иконку туда где часики".  Пора бы сделать ФАК по удалению элемента из диначеского массива.


 
Новичек   (2004-11-21 09:42) [13]

Может, так:


procedure DeleleElement(Index: Integer );
procedure AddElement(Index: Integer; ANew: AnsiString );

var
 A: Array of AnsiString;

implementation

procedure DeleleElement(Index: Integer );
var
LastEl: Integer;
begin
  LastEl := High(A);
  if Index <  LastEl then move(A[Index + 1], A[Index],
  (LastEl - Index) * SizeOf(A[Index]));
  SetLength(A, LastEl);
end;

procedure AddElement(Index: integer; ANew: AnsiString);
var
Len: integer;
begin
  Len := Length(A);
  if Index >= Len then Index := Len + 1;
  SetLength(A, Len + 1);
  move( A[Index], A[Index+1],
        (Len-Index) * SizeOf(A[Index]));
  A[Index] := ANew;
end;


 
begin...end ©   (2004-11-21 09:54) [14]


> noob ©   (20.11.04 22:47)


uses Math;

type
 TMyArray = array of TMyType;

procedure DeleteItem(var Arr: TMyArray; Index: Integer);
begin
 if InRange(Index, Low(Arr), High(Arr)) then
 begin
   MoveMemory(@Arr[Index], @Arr[Index + 1], SizeOf(Arr[Index]) * (Length(Arr) - Index));
   SetLength(Arr, Length(Arr) - 1)
 end
end.


 
Shama_n ©   (2004-11-21 17:46) [15]

TStringList и метод Delete[Номер строки] не подходит? :)



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

Текущий архив: 2004.12.05;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.046 c
1-1100719298
bloodman
2004-11-17 22:21
2004.12.05
ааа помогите плииз восстановить проект Ж((


1-1100677690
Dmitrij_K
2004-11-17 10:48
2004.12.05
Скорость работы программы


14-1100625771
Piter
2004-11-16 20:22
2004.12.05
Как проиграть QuickTime?


4-1098463382
Cheburek
2004-10-22 20:43
2004.12.05
Drag &amp; Drop имён файлов из моего приложения в проводник?


14-1100790753
DiamondShark
2004-11-18 18:12
2004.12.05
...чтоб сказку сделать былью.