Форум: "Потрепаться";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
ВнизПоиск в массиве -- как??? Найти похожие ветки
← →
cvg (2004-08-02 15:11) [0]Мужики, подскажите, pls, subj. Хотя бы в одномерном...
← →
MacroDenS © (2004-08-02 15:14) [1]а что ищем? и какого типа массив...
хотя в принципе разницы никакой, просто в цикле проверку делаешь типа:
if mas[i]=*** then <действие>
← →
cvg (2004-08-02 15:18) [2]А более человеческого ничего нет??? Вот в Клиппере, как сейчас помню, специальная функция была -- aSeek(<array>,<item)), возвращала номер элемента в массиве...
← →
PVOzerski © (2004-08-02 15:20) [3]Ну, если это массив символов, есть функция pos. А если чисел или каких-нибудь структур - см. [1]
← →
Думкин © (2004-08-02 15:20) [4]Есть бесчеловечное только.
← →
MacroDenS © (2004-08-02 15:30) [5]А ты думаешь в клипере оно как работает???
да именно так, только это спрятано от глаз разработчиков, шоб глаза не мозолила...
← →
cvg (2004-08-02 15:33) [6]Ну а тут кто противомозольную функцию написать? А так -- самому придется... :(((
← →
Digitman © (2004-08-02 15:35) [7]
> тут кто противомозольную функцию написать? А так -- самому
> придется
ха ! "самому придется" ... ты думал - здесь негры ?
← →
MetalFan © (2004-08-02 15:36) [8]function AnsiIndexStr(const AText: string; const AValues: array of string): Integer;
Description
AnsiIndexStr returns the 0-offset index of the first string it finds in AValues that matches AText case-sensitively. If the string specified by AText does not have an exact match in AValues, AnsiIndexStr returns –1.
← →
MetalFan © (2004-08-02 15:38) [9]и еще:
function AnsiIndexText(const AText: string; const AValues: array of string): Integer;
и
function AnsiMatchText(const AText: string; const AValues: array of string): Boolean;
надеюсь то? )
← →
Рамиль © (2004-08-02 15:39) [10]
> Ну а тут кто противомозольную функцию написать? А так --
> самому придется... :(((
одна противомозольная функция 100-1000$ в зависимости от величины мозоли.
← →
cvg (2004-08-02 15:42) [11]Не, MetalFan, там же ясными английскими буквами накорябано -- string handling routines...
← →
MacroDenS © (2004-08-02 15:42) [12]to Рамиль ©
продления ключа от мозолей каждые 6 месяцев - стоимость от 50$
← →
Digitman © (2004-08-02 15:46) [13]
> cvg (02.08.04 15:42) [11]
> там же ясными английскими буквами накорябано
зато в твоем вопросе ни ясными, ни неясными, ни вообще какими-то не "накорябано", КАКОГО типа у тебя эл-ты твоего массива
← →
cvg (2004-08-02 15:48) [14]Ну, допустим, символьные строки... А что, от этого чтой-то зависит?
← →
MacroDenS © (2004-08-02 15:50) [15]типа этого чтоль:
...
var
mas:array[0..10] of String;
тогда смотри [1]
← →
Sandman25 © (2004-08-02 15:53) [16]TStrings.IndexOf :)
← →
Sergey Kaminski © (2004-08-02 15:53) [17]В Делфи есть только один _специальный_ (встроенный) тип массива - массив символов (строка).
← →
cvg (2004-08-02 15:55) [18]Н-да, скучновато тут у вас, господа...
← →
MacroDenS © (2004-08-02 15:55) [19]to Sandman25
StringList это конечно хорошо, только там много знать нужно, автор может запутаться...
← →
Sergey Kaminski © (2004-08-02 15:55) [20]Sandman25 © (02.08.04 15:53) [16]
Сейчас опять начнем спорить - является ли TStrings массивом? :)
А автор ветки будет смотреть, как все тут друг друга режут на куски :)))
← →
MacroDenS © (2004-08-02 15:57) [21]Короче, обращаюсь к автору ветки, не ломай мозги!
Работай с массивами так как всегда работали и поиск делай через циклы, в конце концов оно все равно к этому сводиться, хочешь ли ты этого или нет...
← →
cvg (2004-08-02 15:57) [22]Ну-ка, ну-ка... Я в принципе TStringList"ом-то пользуюсь. Там-то какой-то завялящий поиск есть?
← →
Digitman © (2004-08-02 15:58) [23]
> cvg (02.08.04 15:55) [18]
> Н-да, скучновато тут у вас, господа
ни негров, которые будут за тебя ф-цию писать, ни клоунов, которые тебя веселить будут, здесь ты вряд ли найдешь
← →
Sandman25 © (2004-08-02 15:58) [24][19] MacroDenS © (02.08.04 15:55)
Это его проблемы. Я защищаю светлое имя Delphi (произносится с пафосом) :)
[20] Sergey Kaminski © (02.08.04 15:55)
Зачем спорить? Массив - это array, TStrings - это class :)
← →
Anatoly Podgoretsky © (2004-08-02 16:01) [25]Автор ветки должен приложить максимум усилия к трепу, а не ждать милостей от природы.
← →
cvg (2004-08-02 16:03) [26]"Работай с массивами так как всегда работали..." Я всегда писал либо aSeek (в Клиппере), либо in_array (в РНР). В Перле вот похуже было...
← →
Digitman © (2004-08-02 16:08) [27]
> cvg (02.08.04 16:03) [26]
> Я всегда писал
ты всегда имел дело с простыми типами, вот и "писал"
здесь же, в Делфи, эл-т массива может быть чем угодно, да и сам массив массиву - рознь ... и Борланд не обязан на каждый случай жизни, коих м.б. бесконечное мн-во, предоставлять какому-то cvg отдельную ф-цию
← →
MacroDenS © (2004-08-02 16:08) [28]
Я всегда писал либо aSeek (в Клиппере), либо in_array (в РНР). В Перле вот похуже было...
уууу как здесь все запущено.......
тут придется гораздо сложнее, либо ты поймешь как работать с массивами, либо Делфи вля тебя скала с которой ты сорвался насмерть...
А вот как только научишься с массивами работать, так можешь уже и смою функцию на подобе aSeek написать...
← →
KSergey © (2004-08-02 16:10) [29]> [23] Digitman © (02.08.04 15:58)
> ни клоунов,
Вот с этим-то часто проблем как раз нет, в отличии от первого...
← →
cvg (2004-08-02 16:10) [30]Дак пишу уже и так... Чай не совсем я чайник медный!
← →
Digitman © (2004-08-02 16:13) [31]
> KSergey © (02.08.04 16:10) [29]
> Вот с этим-то часто проблем как раз нет, в отличии от первого
тык ведь и цирк пока никуда не уезжал !
← →
MacroDenS © (2004-08-02 16:15) [32]ну хоть это радует.
Надеюсь с циклами то хоть работать умеешь?
В общем суть такая, если у тебя есть просто переменная типа String? то она уже одномерный массив символов с диапозоном 1..Length(строка)
Массивы могут быть всех (если не ошибаюсь) типов. но это еще не все, можно структурировать и т.д и т.п.
Но все таки основной метод поиска - это цикл, в котором ты прокручиваешь элементы массива
Вот такая азбука
← →
cvg (2004-08-02 16:16) [33]
function aSeek(arr,item):integer;
var i:integer;
begin
Result := -1;
for i := 0 to length(arr) - 1 do
if arr[i] = item
then
begin
Result := i;
break;
end;
end;
← →
KSergey © (2004-08-02 16:21) [34]> [33] cvg (02.08.04 16:16)
Мээ... Это компилится? (мне просто проверять лень)
← →
Sandman25 © (2004-08-02 16:23) [35]Лучше так:
for Result := Low(Arr) to High(Arr) do
if arr[Result] = item then
exit;
Result := -1;
← →
cvg (2004-08-02 16:28) [36]Если
function aSeek(arr:array of string;item:string):integer;
то компилится. Low? High? У Йенсена и Вирта такого не было, поэтому не в курсе.
← →
MacroDenS © (2004-08-02 16:36) [37]вот так постепенно, общими усилиями, ростут от начинающих к более опытным...
← →
Sandman25 © (2004-08-02 16:38) [38][36] cvg (02.08.04 16:28)
Очень рекомендую поставить слово const перед arr.
← →
cvg (2004-08-02 16:38) [39]А изменить длину массиса как? Типа как в Клиппере было -- aAdd(<array>,<item>)...
← →
Sandman25 © (2004-08-02 16:41) [40][39] cvg (02.08.04 16:38)
Завязывайте с аналогиями. Если работаете с Delphi, то придется почитать книги.
PS. Книги не по Clipper :)
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.22;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.035 c