Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264

Проверить есть ли Attachment или нет. VkNet

06.02.2017, 12:12. Показов 1520. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, форумчане!

Пытаюсь из беседы ВК вытянуть все фотки, но проблема в том, что как только цикл проходится по сообщению где нет прикрепленных фото, сразу выходит ошибка, что "индекс превышен"

Код:
C#
1
2
3
4
5
for (int i = 0; i != 10; i++)
{
    var attachment = get.Messages[i].Attachments[i];
    // остальной код...
}
т.е, ошибка в этом месте:
C#
1
Attachments[i]
т.к здесь пытается обратиться по индексу, а его то нет!

Помогите, пожалуйста, разобраться, что-то не въезжаю.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2017, 12:12
Ответы с готовыми решениями:

Как через VkNet прочекать ID аккаунта удалён он или нет
Нужно через VkNet проверять ID удален ли аккаунт или нет. Но каким методом еффективно это делать я так и не понял

Проверить, есть ли записи в RecordSet'е или нет.
Здравствуйте! Мне вот такая штука понадобилась: надо проверить, есть ли записи в RecordSet'е или нет. Как мне енту вещь создать??? ...

Проверить есть такой юзер или нет в таблице
Здрасти! Есть таблица "admins" и два столбика name и pass. НУ и два текст бокса Имя и Пароль. Как проверить текст из текст бокса со...

9
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
06.02.2017, 13:00
Добрый день!
Вы используете один и тот же индекс для получения сообщений и вложений. Если я все верно понимаю, то индекс у вложения указывает на индекс в массиве вложений конкретного сообщения. Т.е. к примеру есть 2 сообщения, но в первом 1 вложение, а во втором 0. Таким образом, во втором сообщении у Вас вылезет исключение. Попробуйте, для проверки такой вариант:
C#
1
var attachment = get.Messages[i].Attachments[0];
Добавлено через 2 минуты
Соответственно, для того, чтобы извлечь все вложения из всех сообщений, нужно добавить еще один цикл. в первом тогда нужно узнавать количество вложений в сообщении, а во втором уже извлекать их.
1
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264
06.02.2017, 13:12  [ТС]
Цитата Сообщение от Shogun31337 Посмотреть сообщение
в первом тогда нужно узнавать количество вложений в сообщении
Вот это меня и интересует. Как узнать то, кол-во вложений?)
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
06.02.2017, 13:21
Цитата Сообщение от Fedor_Fedorov Посмотреть сообщение
Как узнать то, кол-во вложений?
Так это уже нужно смотреть в документации на ту библиотеку, которую Вы используете! Ну, или использовать метод "научного тыка"... Обычно за такие вещи отвечают свойства Count(если список) или Lenght (если массив). Точнее сказать не могу.

Добавлено через 3 минуты
Кстати... Количество сообщений, как я понимаю, тоже нужно узнавать! Не всегда же их ровно 10 штук!
1
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264
06.02.2017, 15:13  [ТС]
Shogun31337, спасибо за подсказку.
-----
Attachments имеет значение Count = 0, если вложений нет. Но у меня, всё-таки не получается сделать..
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
06.02.2017, 15:43
Лучший ответ Сообщение было отмечено lumiLilo как решение

Решение

Цитата Сообщение от Fedor_Fedorov Посмотреть сообщение
Но у меня, всё-таки не получается сделать..
Так а что именно не получается?
По идее, должен быть примерно такой код:
C#
1
2
3
4
5
6
7
for(int i=0;i<message.count;i++)
{
    for(int j=0;j<message[i].attachments.count;j++)
    {
        var attachment = message[i].attachment[j];
    }
}
1
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264
06.02.2017, 15:52  [ТС]
Shogun31337, спасибооооо, выручил!
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
06.02.2017, 15:58
Да не за что! Заработало?
0
36 / 32 / 23
Регистрация: 28.12.2015
Сообщений: 264
06.02.2017, 16:00  [ТС]
Shogun31337, дааа, заработало))) голову себе уже забил за эти два дня, вот сидел тупил, оказалось всё просто.
0
06.02.2017, 16:02

Не по теме:

Цитата Сообщение от Fedor_Fedorov Посмотреть сообщение
сидел тупил, оказалось всё просто
Это нормально! :) У меня такое тоже бывает! :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2017, 16:02
Помогаю со студенческими работами здесь

Как проверить, есть файл в папке или нет?
Как проверить существует файл в папке или нет? Условие. В файл будет записываться информация. Когда запускаеться программа она должна...

Как проверить есть ли файл на FTP или нет
В общем то из названия темы всё понятно, мне нужно сделать условие If Файл_на_фтп_НЕсуществует then 'тут код else 'тут другой код ...

JSON как проверить есть ли что то в значении или нет
Доброго времени суток!) Есть JSON ответ от VK API ...

Запросить строку и проверить есть ли он примером или нет.Если да,то вычислить
Спросите у пользователя строку, состоящую из 5 символов, и проверьте есть ли она примером, добавляются два однозначных числа, каждое из...

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет"
void check_same(const int* a) { for (const int* p = a; p &lt; a + 9; p++) for (const int* q = p+1; q &lt; a + 10; q++) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru