Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.034 c
4-1098600632
Глеб
2004-10-24 10:50
2004.12.05
Завершение программы, которая ранее была запущена


9-1088438773
Evgeniy_K
2004-06-28 20:06
2004.12.05
VSync


10-1067933225
dmuv
2003-11-04 11:07
2004.12.05
Что такое RepositoryId в CorbaConnection ?


3-1099979637
Explorer
2004-11-09 08:53
2004.12.05
AdoDataSet для работы c StoredProc


14-1100260237
Гайцы-Газазад
2004-11-12 14:50
2004.12.05
Что там Юссуф? Вот вам настоящая новость дня! Я рыдалъ...........





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