Читайте внимательно документацию. Если там не написано, что надо передавать параметром ник виртуального пользователя (а там этого НЕ НАПИСАНО), то значит можно считывать без подключения сего ботинка. Аналогично и с приемом событий.ОреЛ писал(а):Максим, скажите пожалуйста, считывание объявлений возможно без подключения виртуального пользователя? И получение событий Добавления/Редактирования/Удаления объявления/комментария тоже возможно без подключения виртуального пользователя?
Считывание объявлений
Re: Считывание объявлений
-
- Администратор
- Сообщения: 6871
- Зарегистрирован: 09:56, 27.06.2005
Re: Считывание объявлений
Все верно, если событие связано с виртуальным пользователем, то передается его имя.
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Подскажите в чем ошибка?(Идет получение информации объявление - нужен именно ник объявления по определенному 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;
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
Re: Считывание объявлений
Случаем, не стоило бы проверять на пустоту пришедшего блока?
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
— Martin Golding
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Думаю смысла нету. Идет событие - новый комментарий. Из этого комментария вытаскиваю ID главного объявления, которое прокомментировано. А по этому ID запрашиваю информацию об главном объявлении.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
-
- Администратор
- Сообщения: 6871
- Зарегистрирован: 09:56, 27.06.2005
Re: Считывание объявлений
Просьба уточнить что именно не работает? Правильные ли значения даты/времени и срока? Что означает "Если убрать присваивание значений от полученных данных, то код работает."? Каково значение объема входящего блока данных?
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Не могу получить данные от запроса. Сам запрос проходит нормально.
То есть, если сделать запрос без обработки данных и присваивании переменных, то работает. Как я понял моя ошибка в том, что не могу обработать блок данных от запроса именно даты/времени и срока. В этом и загвоздка.Что означает "Если убрать присваивание значений от полученных данных, то код работает."
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
-
- Администратор
- Сообщения: 6871
- Зарегистрирован: 09:56, 27.06.2005
Re: Считывание объявлений
Тогда смотрите iOffset, корректно ли он изменяется после чтения данных.
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Сейчас проверил iReadOffset - пришел пустой блок. Значит неправильный ID объявление запрашивается. В инструкции оказывается был ID комментария при событии "Добавление комментария к объявлению", а не ID самого объявления.. Поэтому и не получалось.
Вопрос тогда в другом. Мне нужно при событии "Добавление комментария к объявлению" узнать кто является автором объявления, к которому был сделан новый комментарий.
Вопрос тогда в другом. Мне нужно при событии "Добавление комментария к объявлению" узнать кто является автором объявления, к которому был сделан новый комментарий.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
Re: Считывание объявлений
У меня была схожая проблема, когда, при добавлении объявления, мне надо было знать ID раздела. Приходилось по всем разделам проходить и искать объявление с таким же ID объявления, как и добавленное. У вас проблема даже еще хуже, ведь вам надо получать данные еще и по каждому объявлению для поиска комментария с нужным ID.
Данных приходит слишком мало. Пришло объявление? Дайте ID раздела и ID объявления.
Пришел комментарий? ID раздела, ID объявления, ID комментария.
Данных приходит слишком мало. Пришло объявление? Дайте ID раздела и ID объявления.
Пришел комментарий? ID раздела, ID объявления, ID комментария.
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
— Martin Golding
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Думал написать плагин, что бы при комментировании объявления автору объявления приходило оповещение о том что, его объявление было прокомментировано. Но сейчас понимаю, что это почти не реально реализовать.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
-
- Администратор
- Сообщения: 6871
- Зарегистрирован: 09:56, 27.06.2005
Re: Считывание объявлений
Ничего сложного нет пробежаться по данным. Так как количество разделов/объявлений и комментариев жестко ограничено, то и вычислительных ресурсов затрачиваться на поиск необходимого объявления будет немного. Но и с нашей стороне конечно же стоило прикреплять к данным ID объявления...
Re: Считывание объявлений
Получаешь событие о новом комментарии. Запрашиваешь все разделы ДО. Проходишь по всем разделам, запрашивая все объявления. У каждого объявления запрашиваешь данные. Если комментариев у объявления нет, то идешь к следующему. Если комментарии есть, проходишь по всем и ищешь нужный ID.leonbratsk писал(а):Думал написать плагин, что бы при комментировании объявления автору объявления приходило оповещение о том что, его объявление было прокомментировано. Но сейчас понимаю, что это почти не реально реализовать.
Попробуй сделать, а потом посмотри, много ли это отнимает ресурсов и времени на выполнение.
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
— Martin Golding
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Чувствую, что я это не осилю. Может кто-нибудь захочет в совместности написать?
Скорей всего будет мало памяти требовать, допустим 6 разделов.
Получается 3 цикла в одном. Получение всех разделов(у нас есть ид всех разделов)>запрашиваем по первому разделу все обьявиения(есть ид обьявилений всех+ проверяем если комментарии в объявлении, если нету,то пропускаем его)>запрашиваем информацию о объявлении, в этот момент сверяем с идом нового комментария. Находим - прерываем весь цикл и делаем дальше, что нам нужно.
Скорей всего будет мало памяти требовать, допустим 6 разделов.
Получается 3 цикла в одном. Получение всех разделов(у нас есть ид всех разделов)>запрашиваем по первому разделу все обьявиения(есть ид обьявилений всех+ проверяем если комментарии в объявлении, если нету,то пропускаем его)>запрашиваем информацию о объявлении, в этот момент сверяем с идом нового комментария. Находим - прерываем весь цикл и делаем дальше, что нам нужно.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
- leonbratsk
- Сообщения: 488
- Зарегистрирован: 14:07, 21.03.2010
Re: Считывание объявлений
Долго и упорно писал, и наконец-то получилось. Кому потребуется код в лс пишите.
Интересно сколько займет вычислительных ресурсов на все это дело.
Интересно сколько займет вычислительных ресурсов на все это дело.
Чат CommFort города Братск "SkyLine"
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40
адрес: vcommforte.com или 194.146.200.130
версия сервера: 5.40