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

Вниз

Вопрос про массив   Найти похожие ветки 

 
super_alex   (2003-06-01 18:50) [0]

Значить помогите плиз... Есть массив (длина переменная и может быть 100, а может и 20000). Массив забивается числами (диапазон тоже может быть маленький, а может быть огромный). Но с определённого элемента (номер элемента всегда разный и НЕ зависит от длины массива) в массиве лежит одинаковое число. Например, массив из 5000 элементов и последние 3000 элементов - это значение 123...
Вопрос: "Как выкинуть из массива эти последние одинаковые значения"?


 
Anatoly Podgoretsky   (2003-06-01 19:01) [1]

SetLength(ar,Length(ar)-3000)


 
super_alex   (2003-06-01 19:11) [2]

Сорри, я, наверное, некорректно задал вопрос!!!
Так это если точно известно что начинаются они с 3000. А у меня они начинаются произвольно, то есть щас с 3000, а в следующий раз с 150-го... Как узнать с какого они начинаются, вот какая у меня проблема...


 
Всеволод Соловьёв   (2003-06-01 19:21) [3]

for i:=2 to length(a) do
if a[i]<>a[i-1] then odnakov:=i;
setlength(a,Length(a)-i);


 
super_alex   (2003-06-01 19:28) [4]

Спасибо огромное!!!
Все очень помогли...


 
Всеволод Соловьёв   (2003-06-01 19:32) [5]

Но учти! там может быть туды-сюды различие в один символ. Поэкспериментируй :) я не проверял...


 
MegaVolt   (2003-06-02 10:21) [6]

To Всеволод Соловьёв:
Молодец :) Посоветовал. Т.е. когда твоя прога найдёт 2 повторяющихся символа она удалит всё остальное?
Правильнее выполнять её с конца к началу и когда пойдёт разлчие тогда и удалять!!!


 
Всеволод Соловьёв   (2003-06-02 10:59) [7]

2MegaVolt
Ты не заметил одной вещи... Там не стоит begin end возле for.
Поэтому оно все проверит, а потом уменьшит размер массива.


 
Sandman25   (2003-06-02 11:02) [8]

El := Arr[High(Arr)];
i := High(Arr) - 1;
while Arr[i] = El do
dec(i);
SetLength(Arr, i + 2);

Но если массив имеет размер 1 либо все элементы одинаковые, то не сработает. Придется проверять индекс либо организовывать барьер.


 
MegaVolt   (2003-06-02 11:14) [9]

Согласен но по моему с конца правильнее так как можно при нахождении отличия остановится :)



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

Форум: "Основная";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
14-35073
Kaktuss
2003-05-28 08:26
2003.06.12
InstallShield Express и BDE


1-34842
Jaxtor
2003-05-29 17:18
2003.06.12
Как обойти при отладке модули Ehlib


3-34670
Fuelfire
2003-05-22 11:04
2003.06.12
Редактирование данных


1-34855
Maks Realov
2003-05-30 12:00
2003.06.12
Вопрос по созданию компонент и автом. зап-ию кода в Design-time


3-34685
DBDev
2003-05-22 16:08
2003.06.12
ПОМОГИТЕ! Хранимая процедура возвращает VARCHAR(255)





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