Получения текста(wall.get)

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)

Получения текста(wall.get)

Сообщение wierusna » 03 фев 2013, 18:26

Здравствуйте,

Есть код, который проверяет все полученные объекты из JSON на наличие определенного текста в записи на стене:
  1. VK.api('wall.get', {}, proverkaWall, Errr);
  2. function proverkaWall(walle:Object):void{
  3.    for (var ii:int = 0; ii < walle.length; ii++){
  4.     if (walle[ii].text == "НЕКИЙ ТЕКСТ"){
  5.         wallyes = wallyes + 1;
  6.         send_chat.text='OK';
  7.             }
  8. }
  9. }
  10.  


ответ приходит в таком виде, как я понял:
  1.  
  2. {"response":[125,{"id":219,"from_id":100172,"to_id":100172,"date":1286702921,"text":"4 года ВКонтакте и мгновенный поиск","attachments":[{"type":"link","link":{"url":"http:\/\/vkontakte.ru\/blog.php?nid=152","title":"4 года ВКонтакте и мгновенный поиск","description":""}}],"comments":{"count":0},"likes":{"count":0},"reposts":{"count":0}},{"id":216,"from_id":100172,"to_id":100172,"date":1286540347,"text":"Команда «Тепло!» дошла не до всех - Новости Санкт-Петербурга - Фонтанка.Ру","attachments":[{"type":"link","link":{"url":"http:\/\/http://www.fontanka.ru\/2010\/10\/08\/108\/","title":"Команда «Тепло!» дошла не до всех - Новости Санкт-Петербурга - Фонтанка.Ру","description":"Фонтанка.Ру: Команда «Тепло!» дошла не до всех"}}],"comments":{"count":0},"likes":{"count":1},"reposts":{"count":0}},{"id":205,"from_id":100172,"to_id":100172,"date":1285743447,"text":"Нравится ли Вам наш новый виджет? — Очень.","attachments":[{"type":"link","link":{"url":"http:\/\/vkontakte.ru\/developers.php?o=-1&amp;amp;p=Poll","title":"Нравится ли Вам наш новый виджет?","description":""}}],"comments":{"count":0},"likes":{"count":0},"reposts":{"count":0}}]}
  3.  
  4.  


По умолчанию переменная var wallyes:int = 0;
При условии, что запись найдена, переменная var wallyes:int = 1;
Но она так и остается равна нулю. Запись на стене есть. Помогите пожалуйста разобраться! Мне кажется я тут что то не так делаю if (walle[ii].text == "НЕКИЙ ТЕКСТ"){
wierusna

 
Автор темы
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Получения текста(wall.get)

Сообщение Casperovskii » 03 фев 2013, 18:30

Проблема в том, что ты проверяешь не "содержание данного куска текста" в сообщении, а "равенство всего текста сообщения твоему куску текста". Тебе нужно написать функцию, которая будет возвращать true, если содержится данный текст (проход по всему сообщению со сравнением следующих n-символов с твоим текстом, в школе пишут еще).

За это сообщение автора Casperovskii поблагодарил:
wierusna
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Получения текста(wall.get)

Сообщение wierusna » 03 фев 2013, 18:34

CasperovskiiЯ в школе информатику не изучаю) И вобще не изучал программирование в учебных заведениях. Потихоньку дома сам пробую что то писать)
Спасибо за скорый ответ! Посмотрю, что смогу придумать типа walle[ii].text.length == 11

Сейчас попробовал сделать так send_chat.text = walle[ii].text.length;
Реакции нету. Поле осталось пустым. Значит путь walle[ii].text не верный, так? Какой же тогда правильным будет при условии, что ответ будет таким?
  1.  
  2. {"id":216,"from_id":100172,"to_id":100172,"date":1286540347,"text":"Команда «Тепло!» дошла не до всех - Новости Санкт-Петербурга - Фонтанка.Ру","attachments":[{"type":"link","link":{"url":"http:\/\/http://www.fontanka.ru\/2010\/10\/08\/108\/","title":"Команда «Тепло!» дошла не до всех - Новости Санкт-Петербурга - Фонтанка.Ру","description":"Фонтанка.Ру: Команда «Тепло!» дошла не до всех"}}],"comments":{"count":0},"likes":{"count":1},"reposts":{"count":0}}
  3.  
wierusna

 
Автор темы
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.

Re: Получения текста(wall.get)

Сообщение Casperovskii » 03 фев 2013, 22:28

wierusna
Смотри, объясняю алгоритм:
1) Взял текст из поста на стене.
2) Узнал длину текста на стене и длину своего текста.
3) Заходишь в цикл и:
3а) Цикл от 0 до (длина текста с поста - длина твоего текста +1) по переменной i, i++//тут может немного по-другом
3б) берешь substr от текста из поста так: первый символ - i, длина substr = длине "искомого текста",
3в) если результат substr и "искомый текст" равны, ставишь флажок, что содержится необходимый текст и выходишь из цикла
4) если флажок установлен - прибавляешь +1 к количеству wallyes, иначе - нет.
----------------------
Надеюсь, алгоритм понятен, реализовать осилишь?
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Получения текста(wall.get)

Сообщение Serge » 03 фев 2013, 23:01

А встроенные функции работы со строками отменили? indexOf()
http://sevenlines.com.ua - разработка и продвижение сайтов

За это сообщение автора Serge поблагодарил:
wierusna
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: Получения текста(wall.get)

Сообщение Casperovskii » 03 фев 2013, 23:05

Serge
Ну не помнить я их :) Так-то да, ты прав.
wierusna
Смотри, выцепляешь текст из поста и делаешь:
  1. if (!text.indexOf("ИскомыйТекст")==-1) {
  2. //прибавляем +1 к wallyes} else { //что-то еще
  3. }


Ну если, я ничего не попутал. А если попутал, пусть меня Serge поправит

За это сообщение автора Casperovskii поблагодарил:
wierusna
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Получения текста(wall.get)

Сообщение wierusna » 04 фев 2013, 19:19

Casperovskii Serge СПАСИБО ВАМ обоим за помощь !!!
wierusna

 
Автор темы
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40
Благодарил (а): 11 раз.
Поблагодарили: 1 раз.


Вернуться в Создание Flash-приложений ВКонтакте



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0