Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 19:47

Поиск в массиве

Автор Seolkin, 04 окт 2012, 22:30

0 Пользователей и 1 гость просматривают эту тему.

Seolkin

В очередной раз поисковики мне не помогли.

Вот очень простенький код


&НаКлиенте
Процедура Команда1(Команда)
Массивчик=Новый Массив();
Массивчик.Вставить(0, "Ты кто");
Массивчик.Вставить(1, "Это была шутка?");
Массивчик.Добавить("Это ещё что?");
Если Массивчик.Найти("Это была шутка?")=Истина Тогда
Сообщить("Найдено");
Иначе
Сообщить("Не найдено");
КонецЕсли;
КонецПроцедуры



Почему-то отказывается находить первый Элемент в массиве. То есть, если попытаться найти "Это ещё что?" или "Это была шутка?", то появляется сообщение "Найдено", однако если попытаться найти "Ты кто", то результат "Не найдено". Пробовал изменить код на

&НаКлиенте
Процедура Команда1(Команда)
Массивчик=Новый Массив();
Массивчик.Добавить("Это ещё что?");
Массивчик.Вставить(1, "Ты кто");
Массивчик.Вставить(2, "Это была шутка?");
Если Массивчик.Найти("Это ещё что?")=Истина Тогда
Сообщить("Найдено");
Иначе
Сообщить("Ненайдено");
КонецЕсли;
КонецПроцедуры


Но тут он тогда "Ты кто" находит, а всё остальное нет. Не могу никак понять, почему?

sadovod

А ответ очень простой :) Читаем, что пишет СП:
Цитировать
Найти (Find)
...
Возвращаемое значение:
Тип: Число; Неопределено.
Если элемент найден, возвращается его индекс. Если элемент не найден, возвращается Неопределено.
Дальше сами догадаетесь? ;)

Seolkin

Всё)) Спасибо. Понял глупость "Истины".  :D
Глянул внимательно справку и нашёл такое
ЦитироватьСинтаксис:
Найти(<Значение>)
Параметры:
<Значение> (необязательный)

Как это "значение" может быть необязательным? При попытке выполнить такой код

Массивчик=Новый Массив();
Массивчик.Вставить(0, "Ты кто");
Массивчик.Вставить(1, "Это была шутка?");
Массивчик.Добавить("Это ещё что?");
Массивчик.Найти();


Выскакивает ошибка "Недостаточно фактических параметров". Вот и не пойму ни как - это ошибка справки или я опять что-то не понимаю?

sadovod

Ну, справку тоже люди пишут :) Иногда по пятницам, вечером :)

Gunner

Массивчик=Новый Массив();
Массивчик.Вставить(0, "Ты кто");
Массивчик.Вставить(1, "Это была шутка?");
Массивчик.Добавить("Это ещё что?");
ЭлементМассива = Массивчик.Получить(1);

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск