Страница 2 из 3

Re: Считывание объявлений

Добавлено: 17:42, 26.05.2011
$teelR@t
ОреЛ писал(а):Максим, скажите пожалуйста, считывание объявлений возможно без подключения виртуального пользователя? И получение событий Добавления/Редактирования/Удаления объявления/комментария тоже возможно без подключения виртуального пользователя?
Читайте внимательно документацию. Если там не написано, что надо передавать параметром ник виртуального пользователя (а там этого НЕ НАПИСАНО), то значит можно считывать без подключения сего ботинка. Аналогично и с приемом событий.

Re: Считывание объявлений

Добавлено: 13:26, 27.05.2011
Maxim Mirgorodsky
Все верно, если событие связано с виртуальным пользователем, то передается его имя.

Re: Считывание объявлений

Добавлено: 17:36, 07.04.2012
leonbratsk
Подскажите в чем ошибка?(Идет получение информации объявление - нужен именно ник объявления по определенному ID'у) Плагин серверный.
iReadOffset := 0;
aDataToSend := fIntegerToAnsiString(cID);
iBufLength := CommFortGetData(dwPluginID, 1072, NIL , 0, PAnsiChar(aDataToSend), Length(aDataToSend));
SetLength(aReciviedData, iBufLength);

CommFortGetData(dwPluginID, 1072, PAnsiChar(aReciviedData), Length(aReciviedData), PAnsiChar(aDataToSend), Length(aDataToSend));
cTime:=fReadDouble(PAnsiChar(aReciviedData), iReadOffset);
cTime2:=fReadDouble(PAnsiChar(aReciviedData), iReadOffset);
cNick:=fReadText(PAnsiChar(aReciviedData), iReadOffset);

function fReadDouble(bInBuffer : PAnsiChar; var iOffset : Integer): Double;
begin
CopyMemory(@Result, bInBuffer + iOffSet, 8);
iOffset := iOffset + 8;
end;
Если убрать присваивание значений от полученных данных, то код работает. То есть проблема в том, что не могу данные получить.

Re: Считывание объявлений

Добавлено: 18:45, 07.04.2012
ОреЛ
Случаем, не стоило бы проверять на пустоту пришедшего блока?

Re: Считывание объявлений

Добавлено: 18:53, 07.04.2012
leonbratsk
Думаю смысла нету. Идет событие - новый комментарий. Из этого комментария вытаскиваю ID главного объявления, которое прокомментировано. А по этому ID запрашиваю информацию об главном объявлении.

Re: Считывание объявлений

Добавлено: 08:30, 08.04.2012
Maxim Mirgorodsky
Просьба уточнить что именно не работает? Правильные ли значения даты/времени и срока? Что означает "Если убрать присваивание значений от полученных данных, то код работает."? Каково значение объема входящего блока данных?

Re: Считывание объявлений

Добавлено: 10:29, 08.04.2012
leonbratsk
Не могу получить данные от запроса. Сам запрос проходит нормально.
Что означает "Если убрать присваивание значений от полученных данных, то код работает."
То есть, если сделать запрос без обработки данных и присваивании переменных, то работает. Как я понял моя ошибка в том, что не могу обработать блок данных от запроса именно даты/времени и срока. В этом и загвоздка.

Re: Считывание объявлений

Добавлено: 11:47, 08.04.2012
Maxim Mirgorodsky
Тогда смотрите iOffset, корректно ли он изменяется после чтения данных.

Re: Считывание объявлений

Добавлено: 15:09, 08.04.2012
leonbratsk
Сейчас проверил iReadOffset - пришел пустой блок. Значит неправильный ID объявление запрашивается. В инструкции оказывается был ID комментария при событии "Добавление комментария к объявлению", а не ID самого объявления.. Поэтому и не получалось. :(
Вопрос тогда в другом. Мне нужно при событии "Добавление комментария к объявлению" узнать кто является автором объявления, к которому был сделан новый комментарий.

Re: Считывание объявлений

Добавлено: 17:00, 08.04.2012
ОреЛ
У меня была схожая проблема, когда, при добавлении объявления, мне надо было знать ID раздела. Приходилось по всем разделам проходить и искать объявление с таким же ID объявления, как и добавленное. У вас проблема даже еще хуже, ведь вам надо получать данные еще и по каждому объявлению для поиска комментария с нужным ID.
Данных приходит слишком мало. Пришло объявление? Дайте ID раздела и ID объявления.
Пришел комментарий? ID раздела, ID объявления, ID комментария.

Re: Считывание объявлений

Добавлено: 17:29, 08.04.2012
leonbratsk
Думал написать плагин, что бы при комментировании объявления автору объявления приходило оповещение о том что, его объявление было прокомментировано. Но сейчас понимаю, что это почти не реально реализовать.

Re: Считывание объявлений

Добавлено: 10:56, 09.04.2012
Maxim Mirgorodsky
Ничего сложного нет пробежаться по данным. Так как количество разделов/объявлений и комментариев жестко ограничено, то и вычислительных ресурсов затрачиваться на поиск необходимого объявления будет немного. Но и с нашей стороне конечно же стоило прикреплять к данным ID объявления...

Re: Считывание объявлений

Добавлено: 13:03, 09.04.2012
ОреЛ
leonbratsk писал(а):Думал написать плагин, что бы при комментировании объявления автору объявления приходило оповещение о том что, его объявление было прокомментировано. Но сейчас понимаю, что это почти не реально реализовать.
Получаешь событие о новом комментарии. Запрашиваешь все разделы ДО. Проходишь по всем разделам, запрашивая все объявления. У каждого объявления запрашиваешь данные. Если комментариев у объявления нет, то идешь к следующему. Если комментарии есть, проходишь по всем и ищешь нужный ID.
Попробуй сделать, а потом посмотри, много ли это отнимает ресурсов и времени на выполнение.

Re: Считывание объявлений

Добавлено: 14:02, 09.04.2012
leonbratsk
Чувствую, что я это не осилю. Может кто-нибудь захочет в совместности написать?
Скорей всего будет мало памяти требовать, допустим 6 разделов.
Получается 3 цикла в одном. Получение всех разделов(у нас есть ид всех разделов)>запрашиваем по первому разделу все обьявиения(есть ид обьявилений всех+ проверяем если комментарии в объявлении, если нету,то пропускаем его)>запрашиваем информацию о объявлении, в этот момент сверяем с идом нового комментария. Находим - прерываем весь цикл и делаем дальше, что нам нужно.
:)

Re: Считывание объявлений

Добавлено: 15:51, 21.04.2012
leonbratsk
Долго и упорно писал, и наконец-то получилось. :D Кому потребуется код в лс пишите.
Интересно сколько займет вычислительных ресурсов на все это дело.