Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.039 c
1-1091948374
gs
2004-08-08 10:59
2004.08.22
FAST REPORT правка полей пользователем (дизайнер)


3-1090308378
Ani
2004-07-20 11:26
2004.08.22
Как отабражать в QuickReport е текущую дату в виде 5 июля 2004 го


1-1092106071
Марат
2004-08-10 06:47
2004.08.22
Перенос label


11-1079627508
RA
2004-03-18 19:31
2004.08.22
Приоритеты в КОЛ


14-1091371342
Cerberus
2004-08-01 18:42
2004.08.22
Dos





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