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

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

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

Сообщение wierusna »

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

Есть код, который проверяет все полученные объекты из JSON на наличие определенного текста в записи на стене:

Код: Выделить всё

VK.api('wall.get', {}, proverkaWall, Errr);function proverkaWall(walle:Object):void{   for (var ii:int = 0; ii < walle.length; ii++){    if (walle[ii].text == "НЕКИЙ ТЕКСТ"){        wallyes = wallyes + 1;        send_chat.text='OK';            }}} 
ответ приходит в таком виде, как я понял:

Код: Выделить всё

 {"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;p=Poll","title":"Нравится ли Вам наш новый виджет?","description":""}}],"comments":{"count":0},"likes":{"count":0},"reposts":{"count":0}}]}  
По умолчанию переменная var wallyes:int = 0;
При условии, что запись найдена, переменная var wallyes:int = 1;
Но она так и остается равна нулю. Запись на стене есть. Помогите пожалуйста разобраться! Мне кажется я тут что то не так делаю if (walle[ii].text == "НЕКИЙ ТЕКСТ"){
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

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

Сообщение Casperovskii »

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

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

Сообщение wierusna »

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

Сейчас попробовал сделать так send_chat.text = walle[ii].text.length;
Реакции нету. Поле осталось пустым. Значит путь walle[ii].text не верный, так? Какой же тогда правильным будет при условии, что ответ будет таким?

Код: Выделить всё

 {"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}} 
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

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

Сообщение Casperovskii »

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

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

Сообщение Serge »

А встроенные функции работы со строками отменили? indexOf()
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

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

Сообщение Casperovskii »

Serge
Ну не помнить я их :) Так-то да, ты прав.
wierusna
Смотри, выцепляешь текст из поста и делаешь:

Код: Выделить всё

if (!text.indexOf("ИскомыйТекст")==-1) {//прибавляем +1 к wallyes} else { //что-то еще}
Ну если, я ничего не попутал. А если попутал, пусть меня Serge поправит
wierusna
Сообщения: 137
Зарегистрирован: 13 ноя 2011, 18:40

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

Сообщение wierusna »

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