Текущий архив: 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.47 MB
Время: 0.035 c