PDA

Просмотр полной версии : Написал бы кто-нибудь программку?



Страницы : [1] 2

R8TX
08.07.2009, 19:10
Нужна программа, которая бы читала АДИФ и для российских станций заполняла бы данные по РДА - т.е. поля STATE и CNTY. Файл с данными есть на сайте РДА.

Добавлено через 2 часа 43 минуты
A eще лучше если информация бралась бы прямо отсюда: http://www2.dxsoft.com/rda/rdasearch.htm

UR5FCM
08.07.2009, 22:56
Привет!
Где нужно что бы эта программа заполняла эти поля
В каком логе?
Я так понял нужна программа которая только читает РДА и CNTY из АДИФ

R8TX
09.07.2009, 05:53
Где нужно что бы эта программа заполняла эти поля
В каком логе?
Я так понял нужна программа которая только читает РДА и CNTY из АДИФ
Нет, программа берет АДИФ, читает оттуда позывной, запрашивает RDA для этого позывного, и вставляет данные по RDA обратно в тот же АДИФ. Если изначально в АДИФе данные по РДА уже есть, то оставляет без изменений.

RX4HX
09.07.2009, 08:35
Ну да, а просто скачать мой лог, загнать туда адиф, Утилиты->Найти RDA->Для всех станций, выгрузить в адиф, конечно религия не позволяет? :)

73 de RX4HX

EW4DX
09.07.2009, 08:44
Для примера можно посмотреть программу - http://www.ko4bb.com/ham_radio/ADIFLookup/ Она выполняет практически те же задачи, вот только работает only с QRZ.com и GoList. Может, поставить задачу автору? :smile3:

R8TX
09.07.2009, 09:39
Ну да, а просто скачать мой лог, загнать туда адиф, Утилиты->Найти RDA->Для всех станций, выгрузить в адиф, конечно религия не позволяет?
Не знал про фишку :) А откуда она берет данные по РДА? Остальные записи не портит? :)


Для примера можно посмотреть программу - http://www.ko4bb.com/ham_radio/ADIFLookup/ Она выполняет практически те же задачи, вот только работает only с QRZ.com и GoList. Может, поставить задачу автору?
С этим автором я плотно работал, если посмотрите историю ранних версий, найдете там мой позывной, поддержка GoList реализована по моему запросу :) Вчера с помощью этой программы заполнил в логе все недостающие данные по американским каунти, больше тысячи ЩСО.

RX4HX
09.07.2009, 19:19
Не знал про фишку А откуда она берет данные по РДА? Остальные записи не портит?

База у меня в логе есть. Брал ее с сайта RX3RC, но правда год - полтора назад. Но для Вас, без шуток - посоветовавшего мне много интеесных идей, завтра обновлю - будет последняя.
Поиск происходит по позывному - ничего не портит. В общем все по простому тупо и надежно :)

EW4DX
09.07.2009, 19:35
Вот и RX9TX скоро откажется от Логгера. :smile3:

UA1CEC
09.07.2009, 19:55
2 RX4HX
Сделал Утилиты->Найти RDA->Для всех станций,но рда не появились...
Может я что-то не так сделал или не доделал?

RX4HX
09.07.2009, 19:59
В общем так - говорила мне мама: не выпендривайся :)
Чтоб все работало варианта 2:
1. В том что есть перейти на английкий язык.
2. Сейчас закачал обновление 20.4 - скачать его.

Добавлено через 19 минут

Вот и RX9TX скоро откажется от Логгера.

А я между прочим, прочел в RussianDX за что ругали логгер при подстановке имени при новой связи и сделал все у себя на порядок удобнее )))

R8TX
09.07.2009, 20:45
База у меня в логе есть. Брал ее с сайта RX3RC, но правда год - полтора назад. Поиск происходит по позывному - ничего не портит. В общем все по простому тупо и надежно
В идеале конечно данные дожны были бы браться с сайта, поскольку там всегда свежие обновления. Дробные позывные не должны проверяться. Если в записи данные по РДА уже есть, то в записи должны оставаться старые данные. Логика такая?

Вот и RX9TX скоро откажется от Логгера.
Нее, следующий мог логгер будет только гпльным :) Принцип :)

А я между прочим, прочел в RussianDX за что ругали логгер при подстановке имени при новой связи и сделал все у себя на порядок удобнее )))
K4CY в жизни вероятно не самый легкий для общения человек, но, зараза, умный, опытный DXman и контестмен, он сразу сделал логгер удобным для работы на challenge.

RA3GK
09.07.2009, 21:00
помогите готовми макросами зарание спосибо

73 RA3GK

R8TX
09.07.2009, 21:14
какими макросами?

RX4HX
09.07.2009, 21:26
Нее, следующий мог логгер будет только гпльным Принцип

Не будет такого. Почему? Ответ очень простой: любой нормальный человек не хочет другим довать результаты своего безсонного труда.
Вы по натуре коммунист. Я когда то тоже таким был. Только понял - коммунизм противоречит самой сущности человека. И по этому я стал социалистом - от каждого по способностям, кажному - по труду :)

RN9RQ
09.07.2009, 21:30
На perl реализуется просто.
Но у меня сейчас уйма дел и два проекта связаных с радиолюбительством...

RX4HX
09.07.2009, 21:34
На perl реализуется просто.
Но у меня сейчас уйма дел и два проекта связаных с радиолюбительством...

Я кажется Вам уже говорил - нечего сказать - лучше помолчи!
Выпендился - молодец!
Уважать за это все равно не будут. Хочешь делать - делай, нет - молчи!

R8TX
09.07.2009, 21:40
Вы по натуре коммунист.
фигасе :) Даже не знаю как реагировать :)


Не будет такого.
Да я и не просил :) Просто констатировал факт :)

RN9RQ
09.07.2009, 21:51
Я кажется Вам уже говорил - нечего сказать - лучше помолчи!
Выпендился - молодец!
Уважать за это все равно не будут. Хочешь делать - делай, нет - молчи!

Ну если почитать Фрейда.
Можно констатировать, что у вас в недалеком прошлом была проблема с самоутверждением. Вам нужны были почитатели. Вы каким-либо образом самоутвердились, и теперь считаете остальных если мягко то лохами.

Спешу вас огорчить, у меня с этим проблем нет.
Я готов пока предложить RX9TX методическую помощь, если он захочет, то я ему могу объяснить как за пару вечером он сможет автоматизировать необходимый ему процесс.
Это даже не программинг, это ближе к администрированию, в части автоматизациии однотипных действий.

RX4HX
09.07.2009, 22:10
Роман, я не хочу Вас обидеть. Вы молодой и у Вас еще есть возможность исправиться.
Просто знайте: если Вы говорите фразу - я бы сделал, но вот занят, ВСЕ сразу о Вас подумают - очередное трепло.
Хотите помочь - просто тихо помогите. Поверьте, RX9TX сам о Вас тут напишет!

RN9RQ
09.07.2009, 22:13
Если я пишу подобную фразу, то я знаю как сделать и могу объяснить, но времени у самого на реализацию нет.

RX4HX
09.07.2009, 22:13
Да я и не просил Просто констатировал факт

Пытался написать, но у меня инет вырубали...)))
В общем так: никто не будет делиться трудом безсонных ночей. Это факт. Вот это коммунизм.
Лучше социализм: код - закрыт, но бесплатна программа! Я лично верю что именно это победит!
Вперед к победе СОЦИАЛИЗМА! )))

Добавлено через 59 секунд

но времени у самого на реализацию нет

Тупой вопрос - пишешь зачем? Выпендриться?
Я тоже могу написать, что доказал теорему Ферма.И что толку?

R8TX
09.07.2009, 22:25
Джентльмены, брейк!
Вопрос вроде решился.

Добавлено через 3 минуты

В общем так: никто не будет делиться трудом безсонных ночей.
Ну прям так уж и "никто"? :) Это трудом бессонных дней никто не будет делиться, а ночей - запросто :)

RX4HX
09.07.2009, 22:38
Ну прям так уж и "никто"? Это трудом бессонных дней никто не будет делиться, а ночей - запросто

В общем так: :)
для интереса изучал код CQR лога... скучно! правда. По этому и доступен.
Просто для инфы - общаемся с Александром RZ4AG - вот с кем интересно поговорить! Да, лог платный, но ЕСТЬ за что платить. Интересный код, интересные решения.

RN6LIQ
09.07.2009, 22:51
Лучше социализм: код - закрыт, но бесплатна программа! Я лично верю что именно это победит!
Это честный принцип, который мне нравиться. По крайней мере среди нас (единомышленников в своем увлечении), так и должно быть. Что касается RN9RQ, то если верить заявленному возрасту (правда позывной не соответствует, прямо Гайдар какой-то),то так и должно быть. Юности свойственен максимализм. Роман Фёдорович, - Вам правильно заметили, или делайте, или молчите. Разговор идет по существу.

R8TX
09.07.2009, 22:53
для интереса изучал код CQR лога... скучно! правда. По этому и доступен.
Просто для инфы - общаемся с Александром RZ4AG - вот с кем интересно поговорить! Да, лог платный, но ЕСТЬ за что платить. Интересный код, интересные решения.Алексей, мне тоже скучно, правда.

RN9RQ
09.07.2009, 23:03
kolotusha
Вы бы сначала свой позывной написали.
Мой позывной более чем реален. Занимаюсь радиосвязью с 11 лет. Просто надо вам работать в тестах на КВ и УКВ, тогда бы мой позывной вам встречался.
А если мне бы хотелось по понтоваться я бы не в эту ветку лез, а выложил еще одну из своих антенн на обсуждение.

RN6LIQ
09.07.2009, 23:25
Мой позывной более чем реален. Занимаюсь радиосвязью с 11 лет. Просто надо вам работать в тестах на КВ и УКВ, тогда бы мой позывной вам встречался.
Извините, если я Вас обидел, прошу прощения. Но, может Вам незаметно, но Ваши речи вызывают спорные раздумья. Мудрец, всегда сомневается, а Ваши заявления звучат с претензией на аксиому. Скромность, при больших знаниях, вызывает большее уважение чем нескромность (опять же при больших знаниях).

Добавлено через 6 минут
Кстати, мой позывной RN6LIQ, не знаю почему он не виден в моем профиле. Я его туда записал честно. Раньше был виден. Регистрировался на этом форуме, когда позывного еще не было. Несмотря на то, что позывной мой практически не известен, но своей фамилией я горжусь(мой ник на английском).

RX4HX
09.07.2009, 23:52
Извините, если я Вас обидел, прошу прощения. Но, может Вам незаметно, но Ваши речи вызывают спорные раздумья. Мудрец, всегда сомневается, а Ваши заявления звучат с претензией на аксиому. Скромность, при больших знаниях, вызывает большее уважение чем нескромность (опять же при больших знаниях).

Не знаю, что написать более!
+1
RX4HX

RN6LIQ
10.07.2009, 00:12
А если мне бы хотелось по понтоваться я бы не в эту ветку лез, а выложил еще одну из своих антенн на обсуждение.
Кстати, Роман Фёдорович, киньте ссылку. Для меня, сейчас, это больная тема.

UR5FCM
10.07.2009, 01:47
Лучше социализм: код - закрыт, но бесплатна программа!
эТО НЕ ПРАВИЛЬНО надо получить прибыль за свои бессонные ночи
Извините,что не по теме
Теперь по теме
Так что надо программка для чего?
Куда надо эти данные вносить ?
Что сделать примочку к какой программе лога?
Хотите можно и к моей если хотите

R8TX
10.07.2009, 07:49
эТО НЕ ПРАВИЛЬНО надо получить прибыль за свои бессонные ночи
Вы определитесь сначала, бессонные ночи - это хобби или работа? Если работа - то пишите корпоративный софт, за него точно заплатят. Все мы ходим на работу днем и получаем за это деньги, а свободное время двигаем наше хобби.

Любимая цитата:
______________

Творчество есть продукт отчасти магический, и интересный ровно в такой степени, в которой магический. Магический значит спонтанный, иррациональный, возникающий от духа; магический это когда озарение. Если у человека было озарение оно произойдет бесплатно и даже если с него сдерут кожу оно все равно произойдет; а если человеку сказать нечего кроме как за бабки, то пусть лучше вообще не говорит. Знаковое поле и так перегружено разной идиотской бессмыслицей, библиотечные фонды Библиотеки Конгресса и гарвардской каждые 20 лет увеличиваются вдвое и никто всех книжек все равно никогда не прочтет. Перепроизводство литературы есть опасность гораздо более серьезная, чем ее недопроизводство; за публикацию книжек не только гонораров платить не надо, по-хорошему за такие вещи следует брать штраф.
_______________________________

Как-то так :)

RN6LIQ
10.07.2009, 09:01
Вы определитесь сначала, бессонные ночи - это хобби или работа? Если работа - то пишите корпоративный софт, за него точно заплатят. Все мы ходим на работу днем и получаем за это деньги, а свободное время двигаем наше хобби.
Деньги можно брать за конкретно исполненное железо. Потому что тиражировать его сложно. Каждое его исполнение занимает массу времени, и ревностное возмущение семьи, которая это время недополучает. Все что можно легко тиражировать, а это схемы, идеи, мысли и конечно же программы, должны в нашей среде радиолюбителей выкладываться бесплатно. Платить можно, но по собственному желанию, без принуждения. Пусть это будет как выставить оценку признательности, рейтинг популярности. Вот такое мое личное мнение :)

RX4HX
10.07.2009, 09:49
Вы определитесь сначала, бессонные ночи - это хобби или работа? Если работа - то пишите корпоративный софт, за него точно заплатят. Все мы ходим на работу днем и получаем за это деньги, а свободное время двигаем наше хобби.

Значит все таки социализм, а не коммунизм? :)

Теперь мой вопрос: бесплатно - да. Но почему я еще и код должен свой отдавать?

UR5FCM
10.07.2009, 10:44
Вы определитесь сначала, бессонные ночи - это хобби или работа? Если работа - то пишите корпоративный софт, за него точно заплатят. Все мы ходим на работу днем и получаем за это деньги, а свободное время двигаем наше хобби.
Хобби это наше радиолюбительская деятельность: работа в эфире, в соревнованиях ...
Написание программ это работа (создание и воплощение новых идей, изобретение и т.д. )

R8TX
10.07.2009, 13:46
Значит все таки социализм, а не коммунизм?
Про коммунизм это была Ваша сентенция, которую я не понял :)



Теперь мой вопрос: бесплатно - да. Но почему я еще и код должен свой отдавать?
Мой ответ: потому что он кому-то может пригодиться. Или потому что кто-то захочет изменить его так, как нужно ему. Кстати лицензия GPL означает что если кто-то решит воспользоваться Вашим кодом, свой продукт он тоже будет должен лицензировать под GPL.

A чего Вы так за него держитесь и боитесь открыть? Убудет от Вас? В каком месте? Плохо Вам будет если кто-то его посмотрит и пришлет Вам патч? Коллеги по цеху, выпускающие платные логгеры, будут недовольны?

Хобби это наше радиолюбительская деятельность: работа в эфире, в соревнованиях ...
Это кто так решил? А судейство соревнований? Кто им заплатит? А может это организаторы соревнований должны платить участникам за логи? Тоже работа. А создатели сайтов по радиолюбительской тематике? Делятся бесплатно со всеми, им тоже брать деньги? А все те, кто организует на общественных началах работу с детьми? Кто на свои деньги ездит в экспедиции - продавать карточки по 100 долларов за штуку?


Написание программ это работа (создание и воплощение новых идей, изобретение и т.д. )
Когда я прошу новую фичу - это МОЯ идея, будете мне платить? Вон Алексей давно меня зазывает вернуться в тему по LogHX, ему самому идей не хватает?

RX4HX
10.07.2009, 13:57
Вон Алексей давно меня зазывает вернуться в тему по LogHX, ему самому идей не хватает?

Идей хватает, но умных пользователей мало не бывает. :)

UR5FCM
10.07.2009, 16:53
to RX9TX:
Вы сами протворечите себе
Если Вы говорите что нужно платить

Это кто так решил? А судейство соревнований? Кто им заплатит? А может это организаторы соревнований должны платить участникам за логи? Тоже работа. А создатели сайтов по радиолюбительской тематике? Делятся бесплатно со всеми, им тоже брать деньги? А все те, кто организует на общественных началах работу с детьми? Кто на свои деньги ездит в экспедиции - продавать карточки по 100 долларов за штуку?
Тогда почему нужно свой труд (программу) отдавать бесплатно.

Идеи вы предлагаете но делает и воплощает программист
Когда я говорил то имел ввиду их создание а не предложение
Кстати что получается у бесплатной программы - куча идей один хочет так другой хочет так
и сидишь пишешь тратишь время и здоровье на написание новых "фич"
Я считаю какждый труд должен быть оплачен

RX4HX
10.07.2009, 17:00
A чего Вы так за него держитесь и боитесь открыть? Убудет от Вас? В каком месте? Плохо Вам будет если кто-то его посмотрит и пришлет Вам патч? Коллеги по цеху, выпускающие платные логгеры, будут недовольны?

Арт, сейчас я напишу, почему я назвал Вас коммунистом :)
После революции всерьез обсуждался вопрос об "общих женах" - кстати идеология была таже:


Убудет от Вас? В каком месте? Плохо Вам будет если кто-то его посмотрит и пришлет Вам патч?

Вот. Убудет :)
P.S. Конечно это шутка и прошу не обижаться!

R8TX
10.07.2009, 17:10
Арт, сейчас я напишу, почему я назвал Вас коммунистом
После революции всерьез обсуждался вопрос об "общих женах" - кстати идеология была таже:
Ну, если логгер и жена одно и то же, то Вы, раздавая (или продавая) свою программу, именно так и поступаете :)

Добавлено через 2 минуты

Вы сами протворечите себе
Если Вы говорите что нужно платить

Цитата:
Это кто так решил? А судейство соревнований? Кто им заплатит? А может это организаторы соревнований должны платить участникам за логи? Тоже работа. А создатели сайтов по радиолюбительской тематике? Делятся бесплатно со всеми, им тоже брать деньги? А все те, кто организует на общественных началах работу с детьми? Кто на свои деньги ездит в экспедиции - продавать карточки по 100 долларов за штуку?

Тогда почему нужно свой труд (программу) отдавать бесплатно.

Я как раз и говорю о том что все эти люди занимаются всем этим БЕСПЛАТНО из любви к хобби.


Я считаю какждый труд должен быть оплачен

Конечно, на работе.

RN9RQ
10.07.2009, 18:23
kolotusha
Радио за июль прошлого года к примеру.

RX9TX
Да ладно, видишь, пришли тут крутые программеры, которым деньги на работе платят не за реализацию, а с продаваемого софта, как индусам.
Каждому свое.
Вспомни как такие программеры начали открытый лог на моно и прочей лабуде писать. Оно тебе надо потом тот исходник?

UA3GDW
10.07.2009, 18:29
Все что можно легко тиражировать, а это схемы, идеи, мысли и конечно же программы, должны в нашей среде радиолюбителей выкладываться бесплатно.
А вы считаете, что программу написать легко? Тиражировать легко (если данное понятие уместо в отношении программ). Программирование - это труд и он должен оплачиваться.

RN9RQ
10.07.2009, 18:38
UA3GDW
Скажите, а какой процент от труда инженеров под грифом секретно, или хотябы ДСП?
Вот то то и оно...
Деньги у программистов никто не отбирает.

RX4HX
10.07.2009, 18:40
Вспомни как такие программеры начали открытый лог на моно и прочей лабуде писать. Оно тебе надо потом тот исходник?

Роман, опять же начни с себя!
Я пишу на "лабуде" на Дельфи. Но! Я пишу! Это раз! Бесплатно - это два!
Ты опять просто трепишься!
Где твой проект на крутом dot Net?!!! Бесплатный и для народа? Понимаешь, нет у тебя прав вообще тут что то писать!
И еще: почитай Кнута! Там вообще нет в книгах никакого языка программирования - есть его величество АЛГОРИТМ! На чем его реализовывать - дело второе!

Добавлено через 3 минуты

Ну, если логгер и жена одно и то же

Не передергивайте!
Вы прекрасно поняли, о чем я! Вы мужик умный, но слишком одержимы идеей "мирового коммунизма" (ох, чет меня сегодня на коммунизм так и прет).
Нет, на самом деле идея очень хорошая, проблема в том, что это надо тогда делать всем! А все не просто этого не хотят, они еще и деньги хотят на этом заработать..

R8TX
10.07.2009, 18:49
Вы прекрасно поняли, о чем я! Вы мужик умный, но слишком одержимы идеей "мирового коммунизма" (ох, чет меня сегодня на коммунизм так и прет).
Я и не передергивал, а вот Вам надо прекращать пользоваться кривыми аналогиями, сколько раз уже говорилось :)
И не одержим я, просто принцип :) Вот Вы одержимы страхом за свой код :)

Добавлено через 2 минуты

И еще: почитай Кнута! Там вообще нет в книгах никакого языка программирования - есть его величество АЛГОРИТМ! На чем его реализовывать - дело второе!
Соглашусь, пользователю все равно на чем написана программа, если она работает корректно и не тормозит.
Проклинаемый дельфийщиками Visual Basic царствует по количеству пользователей среди радиолюбительских программ, и ничего.

UA3GDW
10.07.2009, 19:00
To RX9TX
А что толку в доступном исходном коде, за который Вы так хлопочите? Думаете все так и кинутся дописывать и исправлять? Я, к примеру, опубликовал программный интерфейс плагинов для своего лога и что? Шестеро скачали и ни кто ни чего до сих пор не написал.

RX4HX
10.07.2009, 19:06
Вы одержимы страхом за свой код

Не страхом, тут другое! Соревнование что ли...
На самом деле - если за труд (а он не малый) денег нет, то значит есть что то другое. Что? Удовольствие. Удовольствие, что у меня что то лучше. Если выкладывать все будут код - это удовольствие пропадет - у все все будет одинаково, что в итоге скажется на пользователях... Ну думаю идея ясна!



опубликовал программный интерфейс плагинов для своего лога

Говорю сразу: идея бредова. Чтоб кто-то что то дописывал надо написать что то популятное и массовое. Лог таким не является.

UA3GDW
10.07.2009, 19:10
идея бредова
До такого "бреда" пока ещё ни кто не додумался, плагины есть только в моём логе.

Лог таким не является.
Поживём - увидим. :)

RX4HX
10.07.2009, 19:17
До такого "бреда" пока ещё ни кто не додумался

Ошибаетесь!
Я до этого бреда лет 8 назад додумался!
Слава Богу одумался!
Сейчас объясню почему: реально писать плагины для Вашей программы никто не будет - программеров у радиолюбителей мало, и кто есть - свой лог пишут. :) А геммора с прикруткой DLL много. Вот и результат... не фиг мучаться!

R8TX
10.07.2009, 19:22
А что толку в доступном исходном коде, за который Вы так хлопочите?
В том что Вы сами каждый раз изобретаете велосипед.

UA3GDW
10.07.2009, 19:25
А геммора с прикруткой DLL много
Не у меня.

RX4HX
10.07.2009, 19:26
В том что Вы сами каждый раз изобретаете велосипед

Не изобретаем, но модернизируем!

UA3GDW
10.07.2009, 19:26
В том что Вы сами каждый раз изобретаете велосипед.
Ну выложу я, например, свои исходники - писать будете?

R8TX
10.07.2009, 19:29
Ну выложу я, например, свои исходники - писать будете?
Вероятность использования Вашего кода (не мной) возрастет от нуля до некоторой величины.

RX4HX
10.07.2009, 19:33
Вероятность использования Вашего кода (не мной) возрастет от нуля до некоторой величины.

Ноль целых, х... десятых! :)

RN9RQ
10.07.2009, 19:44
Видимо дело в качестве кода.
Я честно говоря немонимаю, как человек, читавши Кнута может пользовать делфи или бейсик?
А величиная использования вашего кода зависит от уникальности его функции сложности кода, его качества и документированности.

UA3GDW
10.07.2009, 19:48
Ноль целых, х... десятых!
А Вы ещё и хам. Понятно, завидуете.

RN9RQ
10.07.2009, 19:52
Вы тут в качетве приера CQRlog привели
Я не считаю это поделие образцом, сам видел и его не использую.
Сам пользуюсь простым xlog но и там исходник не ахти какой интересный, хоть и пограмотнее.
Если интересно посмотреть на открытый код, полистайте скажем простенький yfktest
Вообще логгеры под линукс слабоваты. Лучше посмотреть на более распространенный софт.

UA3GDW
10.07.2009, 20:01
Вы тут в качетве приера CQRlog привели
Кто привёл?

RN9RQ
10.07.2009, 20:05
В общем так: :)
для интереса изучал код CQR лога... скучно! правда. По этому и доступен.
Просто для инфы - общаемся с Александром RZ4AG - вот с кем интересно поговорить! Да, лог платный, но ЕСТЬ за что платить. Интересный код, интересные решения.

Вот собственно

UA1CEC
10.07.2009, 20:20
Можно мне свое мнение высказать?
Собрались радиолюбители, которые пишут логеры. Зачем ВЫ спорите?
Пишите о том, что труд должен быть оплачен. Однако, UA3AGW сделал свой лог бесплатным, UR5EQF,AATEST,LOGGER32,у Алексея тоже бесплатный лог.
Я как обычный радиолюбитель просто не могу понять ВАШИХ споров.
Сам использую AATEST- только в контестах,MixW и UR5EQF как базу связей,LOGHX и LOGGER32 для кластера и статистики, которая мне интересна, UA3AGW,UR5FCM - эти логи тестирую и пытаюсь понять, подойдут ли они мне.

EW4DX
10.07.2009, 20:49
Сам использую AATEST- только в контестах,MixW и UR5EQF как базу связей,LOGHX и LOGGER32 для кластера и статистики, которая мне интересна, UA3AGW,UR5FCM - эти логи тестирую и пытаюсь понять, подойдут ли они мне.
Антон, а зачем столько забот сразу? Не проще ли выбрать один лог? Вернее, два - повседневный и для контестов?

Ну выложу я, например, свои исходники - писать будете?
Программировать только ради того, чтобы программировать? - бесцельное занятие... Те, кто пишут свои логи, видимо, делают это как раз для того, чтобы сделать что-то по своему в коде. Интерес, так сказать. :smile3: Иначе бы все их продукты были бы платными. И только тогда был бы смысл использовать куски чужого кода - для ускорения выхода готового продукта. Но мы этого не наблюдаем, и процесс написания становится бесконечным занятием. Потому как для души... Вот только кажется мне, что порой соотношение оператор/программист у авторов имеет перекос в сторону программера, и, соответственно, качество продукта от этого страдает. Поэтому, видимо, и получили большую популярность логгеры от K4CY и N1MM - они сами реально толковые операторы, и понимают чаяния простого люда изнутри. :smile3: Не в этом ли их секретное оружие? :smile3:

RX4HX
10.07.2009, 20:58
А Вы ещё и хам. Понятно, завидуете.

Не очень понял, почему я хам - это относилось не к Вас а к реализации...
А Вы подражала RX9TX! :)
Но Вашему логу это не поможет.

UA3GDW
10.07.2009, 21:07
Не очень понял, почему я хам - это относилось не к Вас а к реализации...
А Вы подражала RX9TX! :)
Но Вашему логу это не поможет.
Не вижу смысла далее переливать из пустого в порожнее. Время расставит все логи по местам.
За сим разрешите откланяться.

EW4DX
10.07.2009, 21:22
Время расставит все логи по местам.
Странная фраза. Вы создаете лог для того, чтобы быть намбер уан? Или для чего? Поймите, лог для начинающего оператора требует совсем другой организации, чем лог для опытного оператора. Поэтому и круг пользователей будет разниться. Чтобы удовлетворить чаяния всех категорий, программа должна быть максимально перестраиваемой в интерфейсе и функциональности. Пока я вижу два реально перспективных лога на просторах СНГ - RX4HX и RZ4AG. Другие только стремятся к ним. И выскажу еще одно мнение: количество обновлений за сутки - это не показатель крутизны - это индикатор сырости продукта. :smile3: Хотя, порой создается впечатление, что некоторые авторы частоту выхода обновлений ставят себе в плюс! Так что заканчивайте свои споры и сравнение интеллектуальных возможностей, делайте толковый продукт! Мы ждем с нетерпением!

RZ4AG
10.07.2009, 21:27
Шестеро скачали и ни кто ни чего до сих пор не написал.
И не напишут (пока). В основном из-за того что программа должна набрать критическую массу пользователей.

Добавлено через 4 минуты

А Вы ещё и хам. Понятно, завидуете.
Не, он не хам. Он трезво оценивает ситуацию. Могу только с большой долей уверенности предположить что код беззастенчиво и без ссылок на первоисточник скопируют у себя.

W6BVB
10.07.2009, 21:58
....О чем этот фильм? Да ни о чем!!!!!.....

1. Заработать денег продажей софта для радиолюбителей не получится в любом случае. Слишком нас мало вообще, еще меньше желающих/имеющих возможность платить за софт.
2. На чем написано абсолютно не имеет значение. Дело выбора разработчика. Причем основной критерий: результат/затраты времени.
Все остальное - выставление перьев типа: "На чем пишешь? - Делфи! -Фи! - Сам xxxxx!".
3. Открытый код и бесплатый софт имеет больше перспектив в нашей среде так как есть вероятность, что софт написанный под лицензией GPL единомышленники как минимум попробуют использовать и как максимум улучшат.
Хороший пример Ham Radio Deluxe. По трудозатратом - огромный проект. Распространяется бесплатно. Код доступен. Кроме того, репутация всегда дороже денег.
Попытки комерциализации хобби медленно, но уверенно убивают его. Мы перестали строить конструкции, потому, что можно пойти и купить. Согласен, радиолюбителю в домашних условиях очень сложно создать аппарат по характеристоикам сравнимого или лучше чем сделанного промышленным способом.
А вот в программирование, как раз одна из областей, где все можно сделать в домашних условиях и доступ к коду программ может только помочь в нашем общем деле.

Сорри за оффтоп. Изначально тема была про написание утилиты, если кто помнит.

UR5FCM
10.07.2009, 23:02
Изначально тема была про написание утилиты, если кто помнит.
__________________
Совершо согласен
Но кто перевл эё в тему о бесплатных и платных логах

R8TX
11.07.2009, 06:49
Открытый код и бесплатый софт имеет больше перспектив
Сейчас Алексей проснется и назовет Вас коммунистом :)

Алексей, ГПЛьте свой лог, и через год это будет лучший логгер и по внешнему виду, и по функциональности, и пользователей будет раз в ***дцать больше, помогу и с раскруткой и с нормальным переводом меню на английский, обещаю :)

RZ4AG
11.07.2009, 10:05
Алексей, ГПЛьте свой лог, и через год это будет лучший логгер и по внешнему виду, и по функциональности
И еще некоторое число клонов с закрытым кодом и с отсутствием ссылок на оригинал...

RX4HX
11.07.2009, 10:28
Сейчас Алексей проснется и назовет Вас коммунистом

Проснулся! :)
Но на самом деле это так и есть в области программирования!


И еще некоторое число клонов с закрытым кодом и с отсутствием ссылок на оригинал...

+1!

RN6LIQ
11.07.2009, 11:18
А вы считаете, что программу написать легко? Тиражировать легко (если данное понятие уместо в отношении программ). Программирование - это труд и он должен оплачиваться.
Согласен, что нелегко. Особенно на тему, что тебе не интересна, и под бдительным оком начальника, который давит на тебя сроками. Но когда программа соответствует увлечению, и пишешь получая удовольствие, то пишется она легко. Когда заканчиваешь ее написание получаешь удовольствие и от того, что можешь поделиться с единомышленниками. И от того что она нужна людям, таким же увлеченными как и ты. Если сотоварищи по увлечению предлагают идеи по улучшению программы, и если идея тебе понравилась, работа по модернизации тоже приносит удовольствие. Если не понравилась, начинаешь соскакивать, искать причины увильнуть. Вот здесь появляется причина поделиться исходниками. Мол делай сам, мне не хочется. Если та сторона настаивает и говорит- сделай ты, у нас так не получиться, вот тут появляется причина говорить о деньгах. Это все о радиолюбительской среде, бизнес не анализируем. Есть разные причины не делиться исходниками. Меркантильные интересы одни из них. Иногда бывает просто стыдно выложить, стилистика написания позорная, хотя программа работоспособная. На саму программу вдохновения хватило, а на хороший продуманный, оптимальный алгоритм нет. Может быть и наворованный код там находиться и стыдно если другие будут тебя тыкать в это носом.
А что касается языков программирования, то тут каждый пишет на том, что удобно, что соответствует образу мышления. Я сам убежденный Сишник, но когда меня спрашивают какой язык им лучше начать изучать, я часто советую Visual Basic. Потому что он больше подходит этим людям. У этих людей профессия не программист, но они хотят автоматизировать свой труд. От программистов, для их часто специфичной задачи, помощи не дождаться. А Visual Basic очень многое может при минимальных затратах.
Так, что скальпель и разделочный нож имеют разное назначение, и как правило разных владельцев :)

RX4HX
11.07.2009, 11:40
Давайте поговорим конкретно:
я очень долго разбирался с тем, как напрямую из лога загружать данные на LoTW - оказалось, что тот протокол, который для этого используется в MSDN практически недокументирован, но что еще более поганое - те данные что есть, не соответствуют действительности. Несколько ночей сидел за компом до 3-х ночи пробуя разные варианты. И врезультате, о чудо! Добился своего. На сколько я знаю, такой ф-ции как у меня - прямой загрузки в ЛоТВ, есть только в 1-2 логе!
И это , если хотите, фишка моего лога.
Теперь вопрос: выкладываю я свой код. Все тут же вставляют его в свои логи (и не только бесплатные, но и в платные). И в итоге зарабатывают деньги на моем труде. Вопрос: оно мне надо?!
Теперь на счет "коммунизма": точно также, как нельзя построить коммунизм в отдельновзятой стране, точно также, пока все логописатели не согласятся выкладывать свои коды, я раздавать свой код другим не собираюсь!

RN9RQ
11.07.2009, 13:44
И еще некоторое число клонов с закрытым кодом и с отсутствием ссылок на оригинал...

Таких можно заставить открыть исходники при помощи наших, пусть и кривых, но законов

Добавлено через 7 минут
RX-Alexei
Еще раз повторю, все зависит от использованной вами лицензии. Описанный вами случай соответствует bsd-like licences
Существует ведь и GPL.
Вот ознакомтесь с русским переводом. http://code.google.com/p/gpl3rus/wiki/LatestRelease

В случае незаконного использования исходников, всполне можно законно заставить открыть исходники софта.

R8TX
11.07.2009, 14:29
И еще некоторое число клонов с закрытым кодом и с отсутствием ссылок на оригинал...
Пруфлинк?

RZ4AG
11.07.2009, 15:39
Таких можно заставить открыть исходники при помощи наших, пусть и кривых, но законов

Вместо того что б писать программу вести войну с ветряными мельницами? Не слишком ли много ненужного геморроя?

R8TX
11.07.2009, 16:05
Теперь вопрос: выкладываю я свой код. Все тут же вставляют его в свои логи (и не только бесплатные, но и в платные). И в итоге зарабатывают деньги на моем труде. Вопрос: оно мне надо?!
Нету больше "платных логов". Вымерли, как динозавры :) И поддержкой ЛоТВ никого не удивишь, это некритичная функция, легкий для восприятия интерфейс имеет большее значение. Если ищете "фишку", то это не она. Фишка - количество пользователей, а здесь полумерами не обойдешься, чтобы сместить Л32 с пьедестала, или хотя бы заставить чуть-чуть подвинуться, нужна революция.

RN9RQ
11.07.2009, 16:19
Думаете мельниц будет так много?

RX4HX
11.07.2009, 16:22
чтобы сместить Л32 с пьедестала

Гм... Логгер в России не на первом месте... даже не на втором... В лучшем случае, на почетном третьем!
В Америке кстати по результатам eHam.net у него 3-5 место.
Кстати, ни один лог с открытым кодом в лидеры вообще не входит...

EW4DX
11.07.2009, 16:36
Гм... Логгер в России не на первом месте... даже не на втором... В лучшем случае, на почетном третьем!
А в России вааще важна не функциональность лога, а русскоязычность интерфейса. Это для пользователей главное!

RX4HX
11.07.2009, 16:38
А в России вааще важна не функциональность лога, а русскоязычность интерфейса. Это для пользователей главное!

Так в Логгере есть же вроде русскоязычный интерфейс?

R8TX
11.07.2009, 16:38
Гм... Логгер в России не на первом месте... даже не на втором... В лучшем случае, на почетном третьем!
С Россией понятно, нет хелпа на русском.


В Америке кстати по результатам eHam.net у него 3-5 место.
На eham этот опросник висит уже лет 10, на результаты сильно влияют первые восторженные отзывы, когда юзерам еще было не с чем сравнивать :)


Кстати, ни один лог с открытым кодом в лидеры вообще не входит...
Так их и нет...

RX4HX
11.07.2009, 16:42
С Россией понятно, нет хелпа на русском.

Как будто кто-то его читает :)



Так их и нет...

CQRLog?

R8TX
11.07.2009, 16:52
Как будто кто-то его читает
Конечно :)


CQRLog?
Нее, там вообще весь интерфейс неправильно сделан, автор явно начинающий радиолюбитель :)

RZ4AG
11.07.2009, 17:12
Конечно :)

в России - не читают. Впрочем и в остальном мире число читающих хелп даже к 25 процентам не приближается.

Добавлено через 2 минуты

А в России вааще важна не функциональность лога, а русскоязычность интерфейса. Это для пользователей главное!
Забыли еще "пищалки и перделки", которые никто не пользует в реальной жизни, но всегда показывают когда рекламируют прогу :)

Добавлено через 7 минут

В Америке кстати по результатам eHam.net у него 3-5 место.
а по количеству залитых на eqsl.cc связей безусловный лидер:
http://www.eqsl.cc/qslcard/ADIFLoggerInfo.cfm (картинка внизу)

RN6LIQ
12.07.2009, 21:00
Страсти поутихли :)
Наверное выходные были бурные :)
По теме:
Для того что бы получить РДА с сайта указанного в первом посте, надо (с точки зрения программиста) открыть клиентское TCP соединение по адресу www2.dxsoft.com (67.228.87.48) и передать серверу строки
POST /rda/rdasearch.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www2.dxsoft.com/rda/rdasearch.php
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.2 (build 02405); MRSPUTNIK 2, 0, 1, 31 SW; .NET CLR 2.0.50727)
Host: www2.dxsoft.com
Content-Length: 14
Connection: Keep-Alive
Cache-Control: no-cache

callsign=RZ3DWQ

Там где стоит RZ3DWQ, надо поставить интересующий позывной

Сервер выдаст что то типа
HTTP/1.1 200 OK
Date: Sun, 12 Jul 2009 16:51:25 GMT
Server:
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

f09
<html>
<head>
<LINK rel="stylesheet" href="stil.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>RDA Search Results</title>
</head>
<body>
<form action="rdasearch.php" method="POST">
Enter a callsign: <input type="text" name="callsign">
<input type="submit" value="Search DataBase!">
</form>
<h1>Search result</h1><p><h3>Search result for: RZ3DW in KNOWN RDA table:</h3></p><table bgcolor=#ccccff cellpadding=3 cellspacing=3 border=0 width='90%'>
<tr class='trColor'><td align=center>ID</td><td align=center>Call</td><td align=center>RDA</td><td align=center>Note</td><td align=center>QSL</td><td align=center>Submited by</td><td align=center>Time</td></tr>
<tr bgcolor=#efefef><td>19186</td><td><font color='red'><b>RZ3DW</b></font></td><td>MO-44</td><td>SWL:21.08.2004</td><td align=center>+</td><td>SP-0142-JG</td><td>2005-11-16 13:41:53</td></tr>
<tr bgcolor=#e1e1e1><td>28119</td><td><font color='red'><b>RZ3DW</b></font></td><td>MO-44</td><td>MO-74 WAS WRONG TYPED (FOR RZ3</td><td align=center>n/a</td><td>DL6KVA</td><td>2008-07-23 04:00:32</td></tr>
<tr bgcolor=#efefef><td>28117</td><td><font color='red'><b>RZ3DW</b></font></td><td>MO-74</td><td></td><td align=center>n/a</td><td>DL6KVA</td><td>2008-07-23 03:58:47</td></tr>
<tr bgcolor=#e1e1e1><td>8481</td><td><font color='red'><b>RZ3DW</b></font>C</td><td>MO-82</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#efefef><td>8482</td><td><font color='red'><b>RZ3DW</b></font>F</td><td>MO-95</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#e1e1e1><td>8483</td><td><font color='red'><b>RZ3DW</b></font>J</td><td>MO-10</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#efefef><td>17931</td><td><font color='red'><b>RZ3DW</b></font>L</td><td>MO-36</td><td></td><td align=center>n/a</td><td>RV3DSF</td><td>2005-01-06 08:30:43</td></tr>
<tr bgcolor=#e1e1e1><td>24863</td><td><font color='red'><b>RZ3DW</b></font>L</td><td>MO-36</td><td></td><td align=center>n/a</td><td>RX3RC</td><td>&nbsp;</td></tr>
<tr bgcolor=#efefef><td>26889</td><td><font color='red'><b>RZ3DW</b></font>M</td><td>MO-85</td><td></td><td align=center>n/a</td><td>DL6KVA</td><td>2007-07-28 08:49:18</td></tr>
<tr bgcolor=#e1e1e1><td>28118</td><td><font color='red'><b>RZ3DW</b></font>Q</td><td>MO-74</td><td></td><td align=center>n/a</td><td>DL6KVA</td><td>2008-07-23 03:59:04</td></tr>
<tr bgcolor=#efefef><td>8484</td><td><font color='red'><b>RZ3DW</b></font>R</td><td>MO-78</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#e1e1e1><td>27006</td><td><font color='red'><b>RZ3DW</b></font>T</td><td>MO-36</td><td></td><td align=center>n/a</td><td>RX3RC</td><td>2007-07-29 00:56:56</td></tr>
<tr bgcolor=#efefef><td>8485</td><td><font color='red'><b>RZ3DW</b></font>Y</td><td>MO-85</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
</table>
<p><h3>Search result for: RZ3DW in UNKNOWN RDA table:</h3></p><b>Sorry no data found for RZ3DW</b>
<CENTER><P><P>
<P>There are 28203 RDA stations in the Database<P></CENTER><h5>
<p><A HREF="rdasearch.htm">RDA ONLINE search page :: РДА страница поиска</A>
<p><A HREF="em.php">RDA eMail request page :: РДА страница запроса по интернет почте</A>
<p><A HREF="unknownrda.php">RDA UNKNOWN callsigns edit page :: РДА редактор базы позывных с неизвестным РДА</A>
<p><A HREF="updaterda.php">RDA ADD page :: РДА добавка нового позывного с известным РДА в базу</A>
<p><A HREF="unknownrdaadd.php">RDA UNKNOWN call add page :: РДА добавка нового позывного с неизвестным РДА в базу</A>
<p><A HREF="statrda.php">RDA DB statistic page :: РДА страница статистики</A>
</h5>
</body>
</html>




Если внимательно посмотреть результат, то можно усмотреть искомые данные в виде РДА. Единственное надо вытащить его из html тэгов.
А вот, откуда берется исходный материал (позывной), я так и не понял. Не понял по причине того что не разу этим не пользовался. Может кто то посвятит меня в курс дела ... :)

R8TX
13.07.2009, 06:10
Если внимательно посмотреть результат, то можно усмотреть искомые данные в виде РДА. Единственное надо вытащить его из html тэгов.
А вот, откуда берется исходный материал (позывной), я так и не понял. Не понял по причине того что не разу этим не пользовался. Может кто то посвятит меня в курс дела ...
Есть текстовый файл с расширением .adi с записями такого вида, из него нужно вытащить то -то идет после тега <CALL:x>, в первом случае это RG3K, получить для него РДА, и внести эти данные в этот же файл (или лучше в измененную копию этого файла).
Формат записи <STATE:2>VR <CNTY:5>VR-02
Теги <EOH> - End of Header - конец заголовка, <EOR> - End of Record - конец записи.

ADIF Export from N1MM Logger V9.6.2
C:\Program Files\N1MM logger\N1MM Logger.exe
10.07.2009 16:01:25
RX9TX logs generated @ 2009-07-12 17:23:13Z
Contest Name: IARU - 2009-07-10
<EOH>

<CALL:4>RG3K <QSO_DATE:8>20090711 <TIME_ON:6>132951 <ITUZ:2>29 <BAND:3>20M <FREQ:8>14.01710 <CONTEST_ID:7>IARU-HF <FREQ_RX:8>14.01710 <MODE:2>CW <RST_RCVD:3>599 <RST_SENT:3>599 <OPERATOR:5>RX9TX <CQZ:2>16 <STX:1>4 <APP_N1MM_POINTS:1>5 <APP_N1MM_RADIO_NR:1>1 <APP_N1MM_RUN1RUN2:1>1 <EOR>

<CALL:5>UA0LS <QSO_DATE:8>20090711 <TIME_ON:6>133135 <ITUZ:2>34 <BAND:3>20M <FREQ:8>14.01931 <CONTEST_ID:7>IARU-HF <FREQ_RX:8>14.01931 <MODE:2>CW <RST_RCVD:3>599 <RST_SENT:3>599 <OPERATOR:5>RX9TX <CQZ:2>17 <STX:1>6 <APP_N1MM_POINTS:1>1 <APP_N1MM_RADIO_NR:1>1 <APP_N1MM_RUN1RUN2:1>1 <EOR>

<CALL:5>RW0SP <QSO_DATE:8>20090711 <TIME_ON:6>133633 <ITUZ:2>32 <BAND:3>20M <FREQ:8>14.01931 <CONTEST_ID:7>IARU-HF <FREQ_RX:8>14.01931 <MODE:2>CW <RST_RCVD:3>599 <RST_SENT:3>599 <OPERATOR:5>RX9TX <CQZ:2>17 <STX:2>13 <APP_N1MM_POINTS:1>3 <APP_N1MM_RADIO_NR:1>1 <APP_N1MM_RUN1RUN2:1>1 <EOR>

qkaracha
13.07.2009, 06:27
Делов-то для толкового програмера - пара часов с бутылкой пива. А вы уже тут третий день срётесь.
Ребята, кто может - напишите, уже...

RN6LIQ
13.07.2009, 07:08
Формат записи <STATE:2>VR <CNTY:5>VR-02
А где надо размещать эту запись, сразу за позывным? И в чем смысл этой записи <STATE:2>VR и этой <CNTY:5>VR-02 ?

R8TX
13.07.2009, 07:14
А где надо размещать эту запись, сразу за позывным? И в чем смысл этой записи <STATE:2>VR и этой <CNTY:5>VR-02 ?
Неважно где, можно за позывным. Смысл - <STATE:2>VR - Воронежская область, <CNTY:5>VR-02 - это какой-то район Воронежской области, то есть РДА.

qkaracha
13.07.2009, 07:30
Единственное надо вытащить его из html тэгов

Не надо ничего вытаскивать. Есть уже готовый эксель http://rdaward.org/rda.rar

RN6LIQ
13.07.2009, 07:47
Неважно где, можно за позывным. Смысл - <STATE:2>VR - Воронежская область, <CNTY:5>VR-02 - это какой-то район Воронежской области, то есть РДА.
Понятно, то есть в первом случае это половинка РДА. А какой желателен интерфейс. Например в появившемся окне, есть кнопка выбрать файл. Нажимаем ее и диалоговом окне выбора файла появляется возможность выбора файлов .adi
Выбираем файл и сразу начинается его сканирование. Данные сохраняются во временный файл, который мы можем потом переименовать в выходной нормальный файл с расширением .adi
Примерно так?


Не надо ничего вытаскивать. Есть уже готовый эксель http://rdaward.org/rda.rar
А это может быть дополнительной опцией.

R8TX
13.07.2009, 07:48
Не надо ничего вытаскивать. Есть уже готовый эксель http://rdaward.org/rda.rar
Надо именно вытаскивать, не надо готовый эксель.

Добавлено через 4 минуты

Понятно, то есть в первом случае это половинка РДА. А какой желателен интерфейс. Например в появившемся окне, есть кнопка выбрать файл. Нажимаем ее и диалоговом окне выбора файла появляется возможность выбора файлов .adi
Выбираем файл и сразу начинается его сканирование. Данные сохраняются во временный файл, который мы можем потом переименовать в выходной нормальный файл с расширением .adi
Примерно так?
Примерно да, только было бы еще хорошо видеть процесс в действии, то есть в окошке видеть уже записи уже с новыми данными, как то так
-------
Call: RG3K
State: VR
CNTY: VR-02

RN6LIQ
13.07.2009, 07:53
Надо именно вытаскивать, не надо готовый эксель
Все понятно. Теперь, в моем случае, надо ждать когда у меня появиться возможность посидеть за этой проблемой, как это было вчера во второй половине дня. А сейчас надо бежать на работу :( Если кто то желает и есть время, может приступать немедленно :) А желаемый вид программы все таки уточните...

Добавлено через 2 минуты

Примерно да, только было бы еще хорошо видеть процесс в действии, то есть в окошке видеть уже записи уже с новыми данными, как то так
Я об этом подумал, но не озвучил :)

Добавлено через 11 минут
И еще, скиньте пожалуйста какой либо файл .adi, для тестирования.
Можно на мыло kolotusha@mail.ru, но лучше наверное здесь. Может кому то еще будет нужен

R8TX
13.07.2009, 08:10
А желаемый вид программы все таки уточните...
Есть уже похожее приложение, работающее с QRZ.COM , принцип тот же, только убрать оттуда лишнее

R8TX
13.07.2009, 08:14
И еще, скиньте пожалуйста какой либо файл .adi, для тестирования.
Можно на мыло kolotusha@mail.ru, но лучше наверное здесь.
Сбросил на имейл.

RA6XTD
13.07.2009, 08:46
Сбросил на имейл.
Да лучше бы здесь выложили.

R8TX
13.07.2009, 08:59
Да лучше бы здесь выложили.
Не приветствуется это разными контест-комитетами и DXCC, ну да ладно, кусок лога за прошедший IARU, России там мало, но есть. В принципе все что не Россия можно из поиска исключать, т.е. искать только позывные, начинающиеся с R и UA-UI.

RA6XTD
13.07.2009, 11:26
Вот, наваял. Вроде работает. :)
Вышло на час больше, чем говорил qkaracha, но не было главного стимула - упоминаемого им же пива (я на работе).
Строго прошу не судить.

Значит входной файл - ADI.
Выходной - имя входного файла + ".new".

RDA-файл.
Или xls где в первом столбце - позывные, во втором - RDA.
Или же txt файл формата "позывной пробелы рда" (можно взять xls файл и пересохранить его в формате "Форматированный текст (разделитель пробел).
По скорости обрабатывать xls довольно долго, т.к. считывается он не постранично как MS Excel, а целиком в память.
Поэтому советую rda.xls сконвертировать в txt и потом уже работать с ним.

Выходная строка вида
<CALL:4>RG3K <STATE:2>VR <CNTY:5>VR-02 <QSO_DATE:8>20090711 <TIME_ON:6>132951 <ITUZ:2>29 <BAND:3>20M <FREQ:8>14.01710 <CONTEST_ID:7>IARU-HF <FREQ_RX:8>14.01710 <MODE:2>CW <RST_RCVD:3>599 <RST_SENT:3>599 <OPERATOR:5>RX9TX <CQZ:2>16 <STX:1>4 <APP_N1MM_POINTS:1>5 <APP_N1MM_RADIO_NR:1>1 <APP_N1MM_RUN1RUN2:1>1 <EOR>

Если какие-то недочеты - пишите.
Ошибки - желательно скрин-шот.
Возможны проблемы с обработкой Excel файла.
Я до сих пор не работал с ним, поэтому что-то мог не учесть.
В процессе написания пришлось заодно разбираться с OLE объектами. hihi

Некорректная обработка входного файла - приаттачте его и укажите в каком месте недочет.
Вместе подправим.

R8TX
13.07.2009, 14:10
RDA-файл.
Или xls где в первом столбце - позывные, во втором - RDA.
Или же txt файл формата "позывной пробелы рда" (можно взять xls файл и пересохранить его в формате "Форматированный текст (разделитель пробел).
По скорости обрабатывать xls довольно долго, т.к. считывается он не постранично как MS Excel, а целиком в память.
Поэтому советую rda.xls сконвертировать в txt и потом уже работать с ним.
Протестировать еще не успел, но может можно сделать чтобы данные брались с сайта, а не из файла? Так надежнее, все время будут свежие данные, не нужно будет лазить за файлом и делать из него .txt.

UA1CEC
13.07.2009, 14:16
Я вот поставил 2000+qso c eu-ra за этот год,уже час работает,всего треть прошел.

UR5FCM
13.07.2009, 14:22
Привет всем!
Теперь ясно что надо было сделать
Я могу сделать только на VB6 если надо, хотя уже опоздал .... :(
А то я подумал что примочка к какой-то программе лога
Тему надо было назвать программа конвертор RDA в ADI
тогда было бы ясно

EW4DX
13.07.2009, 14:23
У меня это так медленно работает, что возникают сомнения в выборе оптимального алгоритма работы программы. 3.5 минуты на файл из 150 связей - думаю, это подозрительно долго.

RA6XTD
13.07.2009, 14:25
Протестировать еще не успел, но может можно сделать чтобы данные брались с сайта, а не из файла?
Можно. Но представьте.
Каждое QSO в логе - запрос на сайт.
Будет работать долго. Куда дольше, чем скачать файл.
Кроме того, сотни запросов подряд могут спровоцировать защиту от DDoS атаки и заблокировать IP-ник. Но это уже как сервер там настроен.


Я вот поставил 2000+qso c eu-ra за этот год,уже час работает,всего треть прошел.
Именно "Обработка..." висит?
Если да, то можно ли получить обрабатываемый ADI-файл, чтобы понять где тормозит? Может просто зациклилось где-то.
У меня единственный ADI-ник - это приаттаченный RX9TX. Но он короткий.
В общем если это не секретная информация - пришлите файл на позывной at mail.ru

Добавлено через 1 минуту

У меня это так медленно работает, что возникают сомнения в выборе оптимального алгоритма работы программы. 3.5 минуты на файл из 150 связей - думаю, это подозрительно долго.
Даже если выбрать в качестве источника RDA текстовый файл?

У меня RX9TX'овский лог обрабатывается секунды за 4.

RX4HX
13.07.2009, 14:33
Примерно да, только было бы еще хорошо видеть процесс в действии, то есть в окошке видеть уже записи уже с новыми данными, как то так


Мне все же до конца не понятно, зачем писать что то еще, если просто и за несколько секунд это все делается в базе моего лога?
Ну да ладно, наверное все же дело принципа :)

Тогда такой вопрос:


но может можно сделать чтобы данные брались с сайта, а не из файла?

Сейчас эту ф-цию хочу в свой лог сделать. Однако холе бы спросить: там допустим по поему позывному есть несколько записей. Какую брать? Первую? Ну с моим позывным понятно - там везде одни и теже данные, а вот у других позывных ведь может быть и не так?

73 de RX4HX

EW4DX
13.07.2009, 14:46
У меня RX9TX'овский лог обрабатывается секунды за 4.
Я именно про этот файл и говорил. И именно вкупе с текстовым источником. А поставив сперва для теста на обработку свой файл с 15000 qso, я выключил программу часа через два - в бегущей строке индикации процесса загорелось только два кубика...

RA6XTD
13.07.2009, 14:48
Я именно про этот файл и говорил.
А что у вас за тачка?

R8TX
13.07.2009, 14:48
Можно. Но представьте.
Каждое QSO в логе - запрос на сайт.
Будет работать долго. Куда дольше, чем скачать файл.
Кроме того, сотни запросов подряд могут спровоцировать защиту от DDoS атаки и заблокировать IP-ник. Но это уже как сервер там настроен.

ADIFLookup делает ту же работу с QRZ.COM, около 1500 ЩСО за минут 15-20. Сервер можно попросить перенастроить, а может ничего и не потребуется.


Мне все же до конца не понятно, зачем писать что то еще, если просто и за несколько секунд это все делается в базе моего лога?
Ну да ладно, новерное все же дело принципа
Если сделать отдельной утилитой, можно ее повесить на сайте РДА, чтобы все могли пользоваться. Смысл в том чтобы по-быстрому обработать лог за соревнования и импортировать в журнал..


Сейчас эту ф-цию хочу в свой лог сделать. Однако холе бы спросить: там допустим по поему позывному есть несколько записей. Какую брать? Первую? Ну с моим позывным понятно - там везде одни и теже данные, а вот у других позывных ведь может быть и не так?
Хороший вопрос. А как же это у Вас уже сейчас организовано? :) Наверно первую, или сделать возможность выбора из списка предлагаемых вариантов. Дробные позывные естественно отбрасываем, с ними не разберешься.

EW4DX
13.07.2009, 14:49
ноут intel pentium dual core 1.73 Ghz, 1GB DDR2, WinXP SP3

R8TX
13.07.2009, 14:51
Даже если выбрать в качестве источника RDA текстовый файл?
А не-российские позывные тоже ищутся?

RA6XTD
13.07.2009, 15:00
А не-российские позывные тоже ищутся?
А какая разница? Ведь в файле, что я скачал с www.rdaward.org есть и иностранные позывные.
Суть алгоритма проста.
Смотрим очередную строку лога.
Если это строка с информацией о QSO выдираем позывной и ищем его в таблице RDA.
Нашли - добавляем район. Не нашли - ничего не делаем.
Обработали весь лог - скидываем в файл.

Так, вот новый билд (только exe-ник). Добавлен поиск по встроенной базе. Т.е. ищет без всяких внешний файлов, но как и у RX-Alexei эта информация каждый день будет устаревать.

Также, возможно, поможет небольшая оптимизация. Если дисковая подсистема работает медленно - поможет. Попрошу отписаться.

И еще - буду благодарен если все-таки дадут файл с >1000 QSO.
Возможно удастся еще больше оптимизировать.

RX4HX
13.07.2009, 15:10
ищем его в таблице RDA

Скорее всего медленно из-за того что таблица не индексирована.
Быстро будет так:
- считываем данные из файлика в программу, в которой используется любая БД (BDE например)
- индексируем по позывному
- далее по Вашему алгоритму...
15 тыс QSO должно обрабатываться не более 2 мин...

EW4DX
13.07.2009, 15:11
Если это строка с информацией о QSO выдираем позывной и ищем его в таблице RDA.
Нашли - добавляем район. Не нашли - ничего не делаем.
Думаю, неверно. Проверяем страну - если не Россия AS или EU - переходим к следующей связи. Резко ускорим поиск, потому как нет перебора иностранных позывных.

RX4HX
13.07.2009, 15:12
Наверно первую, или сделать возможность выбора из списка предлагаемых вариантов.

Тогда получается надо делать для каждого позывного поиск в инете отделый и "ручной" - вызывать для каждого позывного отдельно. Да в общем по другому все равно и не получится... как правильно писали - медленно очень!

Добавлено через 2 минуты

Думаю, неверно. Проверяем страну - если не Россия AS или EU - переходим к следующей связи.

А что, иностранные позывные тоже ищутся в РДА-базе? :)
Только не забываем, что Россия это UA, UA9, UA2, R1FJ, R1MV

R8TX
13.07.2009, 15:18
А какая разница? Ведь в файле, что я скачал с www.rdaward.org есть и иностранные позывные.
Я имел ввиду что в АДИФе, который я Вам прислал, есть и нероссийские позывные, их из рассмотрения можно исключить. Хотя ADIFLookup довольно шустро работает со всеми подряд позывными, тем более что он берет информацию не из файла, а с сайта.

Добавлено через 1 минуту

А что, иностранные позывные тоже ищутся в РДА-базе?
Только не забываем, что Россия это UA, UA9, UA2, R1FJ, R1MV
Можно упростить, Россия - все R, UA-UI.

RX4HX
13.07.2009, 15:20
Можно упростить, Россия - все R, UA-UI.

Хотя в общем если статистика не нужна, то можно просто тупо по первой / первой-второй букве Россию определять. Совершенно верно!

RA9MX
13.07.2009, 15:25
Асгат, прочел всю ветку, но так и не понял, а зачем сей труд?

R8TX
13.07.2009, 15:26
Тогда получается надо делать для каждого позывного поиск в инете отделый и "ручной" - вызывать для каждого позывного отдельно.
Не отдельный, а если в списке для позывного больше одного РДА, можно сделать чтобы прога выводила список всех записей и спрашивала какую из них применить.

Добавлено через 1 минуту

Асгат, прочел всю ветку, но так и не понял, а зачем сей труд?
xxxxx не читатель? :)
Ну если ты мне вручную забьешь в лог все отсутствующие РДА, то не нужен. И будешь делать это после каждого теста :)

RA6XTD
13.07.2009, 15:29
15 тыс QSO должно обрабатываться не более 2 мин...
В общем я взял RX9TX скопировал 100 раз лог, получилось около 15к записей.
На моей тачке 150 секунд.


Думаю, неверно. Проверяем страну - если не Россия AS или EU - переходим к следующей связи. Резко ускорим поиск, потому как нет перебора иностранных позывных.
Я просто посмотрел, повторю, rda.xls и увидел там не только наши позывные.
Поэтому и решил, что искать надо по всем.

Значит если искать только наших, только по нашим - задача упрощается и ускоряется.


Можно упростить, Россия - все R, UA-UI.
Ну вы постановщик задачи. Как скажете. :)

RA9MX
13.07.2009, 15:31
Ну если ты мне вручную забьешь в лог все отсутствующие РДА, то не нужен.
Точно, в РДА-чате, ЧАТлане давно считают тебя латентным РДАсобирателем!:-)
Только вот в реальность базы я мало верю....ИМХО

RX4HX
13.07.2009, 15:33
И еще - буду благодарен если все-таки дадут файл с >1000 QSO.
Возможно удастся еще больше оптимизировать.

Не обижайтесь, но что то Вы напортачили... 9 тыс QSO - не смог вообще окончания дождаться по внутреннему справочнику! Максимум должно быть секунд 30!
А Вы как данные из ADIF-файла считываете? Уж не в StringList ли?

R8TX
13.07.2009, 15:35
У меня оказывается 1000-ое сообщение было на этом форуме, личный рекорд :)

Добавлено через 1 минуту

Точно, в РДА-чате, ЧАТлане давно считают тебя латентным РДАсобирателем!:-)
Только вот в реальность базы я мало верю....ИМХО
Претензии к Роману :)

RA9MX
13.07.2009, 15:37
У меня оказывается 1000-ое сообщение было на этом форуме, личный рекорд
Наливай, а то уйду:-))))

RA6XTD
13.07.2009, 15:50
Не обижайтесь, но что то Вы напортачили... 9 тыс QSO - не смог вообще окончания дождаться по внутреннему справочнику! Максимум должно быть секунд 30!
А Вы как данные из ADIF-файла считываете? Уж не в StringList ли?
Угу. Напортачил. :)
Гляньте 3-й билд, пожалуйста.
И чего обижаться. Законы Мерфи для программистов никто не отменял.
Отладим. hihi

У меня 15к лог обрабатывается теперь за 18 секунд. Было 2 минуты 40 секунд.

P.S.
Кстати считывание тут не при чем, т.к. если пополз бегунок - значит файл уже считался и обрабатывается.

EW4DX
13.07.2009, 16:13
Теперь вроде быстро. :smile3:
Вот еще бы имя оставлять с расширением .adi
Чтобы потом ручками не править...

RX4HX
13.07.2009, 16:17
Гляньте 3-й билд, пожалуйста.

Теперь все нормально! :)
Быстро - как и должно быть!
9 тыс QSO - 8 сек!

RA6XTD
13.07.2009, 16:41
Вот еще бы имя оставлять с расширением .adi
Чтобы потом ручками не править...
Так пойдет (билд 4)?


Теперь все нормально!
Это гуд.

Можно еще выторговать кое-что.
Как вы и говорите - если занести из xls файла в базу данных и проиндексировать по позывному. Надо будет для спортивного интереса попозже так и сделать.

EW4DX
13.07.2009, 16:49
Так пойдет (билд 4)?
Да, конечно. Теперь явных претензий вроде нет. :smile3:

R8TX
13.07.2009, 17:58
Как вы и говорите - если занести из xls файла в базу данных и проиндексировать по позывному. Надо будет для спортивного интереса попозже так и сделать.
Теперь надо делать поиск по сайту, а не из файла, рано почивать на лаврах :)

RA6XTD
13.07.2009, 18:11
Теперь надо делать поиск по сайту, а не из файла, рано почивать на лаврах
Будет и поиск по сайту. :)
Но сразу предупреждаю - "летать" это не будет.

Но то, что есть сейчас - у вас хоть работает?
Правильно ли читается файл, правильно ли вставляется?

Так. Вот 5-й билд.
В комплекте файл базы данных с таблицей RDA.
Теперь обработка 15к QSO "летает".
С 13 секунд у меня дома сократилось до 1 секунды.

RX-Alexei, проверьте, пожалуйста, как у вас.

P.S.
Завалил я QRZ архивами.
Если программа действительно востребована (делал я ее исключительно из спортивного интереса) - я тогда выложу на своем сайте.

EW4DX
13.07.2009, 18:54
Теперь совсем быстро. В логгер загружается - пробовал в LogHX. 15000 QSO - импортировалось без ошибок. Статистику RDA после импорта считает. :smile3:

UA1CEC
13.07.2009, 19:00
Во блин,может я не понял?Даю исходник адиф в прогу,далее прога работает,а после отработки программы все записывается в тот же адиф?
Просто странно,у меня комп 5600+1,5gb ram,а думает ужасть как долго...

RL3Q
13.07.2009, 19:16
Максим,Спасибо попробывал перегнать связи за IARU,все нормально просчитано.

RA6XTD
13.07.2009, 20:06
Даю исходник адиф в прогу,далее прога работает,а после отработки программы все записывается в тот же адиф?
Нет. Если файл называется "имя.adi"
То новый файл будет "имя_RDA.adi"


а думает ужасть как долго...
Странно. Это с последним, 5-м билдом?
Вы точно с этим смотрели? http://forum.qrz.ru/post285319-129.html

RA6XTD
13.07.2009, 21:02
Так. 6-й билд.
С поиском через Интернет.
Проверяем, тестируем.

Как и говорил медленно. Файл из 150 QSO обработался у меня за 17 секунд.
А вот 15к QSO подвис.
Причем подвис сервер dxsoft. Или просто мой IP сервер или их провайдер заблокировал. http://www2.dxsoft.com/ уже у меня не грузится. :(
Неудобно как-то...:suicide2:
"Время ожидания ответа от сервера www2.dxsoft.com истекло.
* Возможно, сайт временно недоступен или перегружен запросами. Подождите некоторое время и попробуйте снова.
..."

Я ж говорил - это фактически DDoS атака.
Не рассчитан сервер на такое количество запросов.

Так что скорее всего от этой идеи придется отказаться.
Ведь одно дело - проверить единичный позывной в аппаратном журнале.
Другое - обработать большой лог.

В общем выкладываю - а там видно будет.

UA1CEC
13.07.2009, 21:30
Может у меня что-то не так?
5 и 6 при извлечении пишет
! C:\Documents and Settings\radio1\Рабочий стол\RDAtoADI_06.rar: Ошибка CRC в RDAtoADI.exe, файл поврежден
! C:\Documents and Settings\radio1\Рабочий стол\RDAtoADI_06.rar: Неожиданный конец архива
????

R8TX
13.07.2009, 21:33
Так что скорее всего от этой идеи придется отказаться.
Ведь одно дело - проверить единичный позывной в аппаратном журнале.
Другое - обработать большой лог.
Отказываться не надо, можно просто задать интервал запросов, скажем не более 2-х запросов в секунду. Или можно написать админу сервера.

Добавлено через 5 минут
Кстати, если запись об области и РДА в исходной записи уже есть, то эти данные не затираются новыми, надеюсь?

RN6LIQ
13.07.2009, 22:15
Все, сервер висит :) Согласованная атака радиолюбителей. А люди скажут, мало того что они в эфире баламутят радиоволны, так еще и WEB сервера вешают :):):)

RA6XTD
13.07.2009, 22:17
Может у меня что-то не так?
5 и 6 при извлечении пишет
Да. У вас что-то с инетом.
Архив битым качается.

Добавлено через 1 минуту

Все, сервер висит
Значит все-таки висит.
Я все же надеялся, что это просто забанили IP.
Блин, нехорошо получилось. :(

Мыло не знаете админа? Напишу хоть, извинюсь.

R8TX
13.07.2009, 22:46
Все, сервер висит
У меня нормально все.

RN9RQ
13.07.2009, 23:02
Страсти поутихли :)
Наверное выходные были бурные :)
По теме:
Для того что бы получить РДА с сайта указанного в первом посте, надо (с точки зрения программиста) открыть клиентское TCP соединение по адресу www2.dxsoft.com (67.228.87.48) и передать серверу строки
POST /rda/rdasearch.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www2.dxsoft.com/rda/rdasearch.php
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.2 (build 02405); MRSPUTNIK 2, 0, 1, 31 SW; .NET CLR 2.0.50727)
Host: www2.dxsoft.com
Content-Length: 14
Connection: Keep-Alive
Cache-Control: no-cache

callsign=RZ3DWQ

Там где стоит RZ3DWQ, надо поставить интересующий позывной

Сервер выдаст что то типа
HTTP/1.1 200 OK
Date: Sun, 12 Jul 2009 16:51:25 GMT
Server:
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

f09
<html>
<head>
<LINK rel="stylesheet" href="stil.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>RDA Search Results</title>
</head>
<body>
<form action="rdasearch.php" method="POST">
Enter a callsign: <input type="text" name="callsign">
<input type="submit" value="Search DataBase!">
</form>
<h1>Search result</h1><p><h3>Search result for: RZ3DW in KNOWN RDA table:</h3></p><table bgcolor=#ccccff cellpadding=3 cellspacing=3 border=0 width='90%'>
<tr class='trColor'><td align=center>ID</td><td align=center>Call</td><td align=center>RDA</td><td align=center>Note</td><td align=center>QSL</td><td align=center>Submited by</td><td align=center>Time</td></tr>
<tr bgcolor=#efefef><td>19186</td><td><font color='red'><b>RZ3DW</b></font></td><td>MO-44</td><td>SWL:21.08.2004</td><td align=center>+</td><td>SP-0142-JG</td><td>2005-11-16 13:41:53</td></tr>
<tr bgcolor=#e1e1e1><td>28119</td><td><font color='red'><b>RZ3DW</b></font></td><td>MO-44</td><td>MO-74 WAS WRONG TYPED (FOR RZ3</td><td align=center>n/a</td><td>DL6KVA</td><td>2008-07-23 04:00:32</td></tr>
<tr bgcolor=#efefef><td>28117</td><td><font color='red'><b>RZ3DW</b></font></td><td>MO-74</td><td></td><td align=center>n/a</td><td>DL6KVA</td><td>2008-07-23 03:58:47</td></tr>
<tr bgcolor=#e1e1e1><td>8481</td><td><font color='red'><b>RZ3DW</b></font>C</td><td>MO-82</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#efefef><td>8482</td><td><font color='red'><b>RZ3DW</b></font>F</td><td>MO-95</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#e1e1e1><td>8483</td><td><font color='red'><b>RZ3DW</b></font>J</td><td>MO-10</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#efefef><td>17931</td><td><font color='red'><b>RZ3DW</b></font>L</td><td>MO-36</td><td></td><td align=center>n/a</td><td>RV3DSF</td><td>2005-01-06 08:30:43</td></tr>
<tr bgcolor=#e1e1e1><td>24863</td><td><font color='red'><b>RZ3DW</b></font>L</td><td>MO-36</td><td></td><td align=center>n/a</td><td>RX3RC</td><td>&nbsp;</td></tr>
<tr bgcolor=#efefef><td>26889</td><td><font color='red'><b>RZ3DW</b></font>M</td><td>MO-85</td><td></td><td align=center>n/a</td><td>DL6KVA</td><td>2007-07-28 08:49:18</td></tr>
<tr bgcolor=#e1e1e1><td>28118</td><td><font color='red'><b>RZ3DW</b></font>Q</td><td>MO-74</td><td></td><td align=center>n/a</td><td>DL6KVA</td><td>2008-07-23 03:59:04</td></tr>
<tr bgcolor=#efefef><td>8484</td><td><font color='red'><b>RZ3DW</b></font>R</td><td>MO-78</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
<tr bgcolor=#e1e1e1><td>27006</td><td><font color='red'><b>RZ3DW</b></font>T</td><td>MO-36</td><td></td><td align=center>n/a</td><td>RX3RC</td><td>2007-07-29 00:56:56</td></tr>
<tr bgcolor=#efefef><td>8485</td><td><font color='red'><b>RZ3DW</b></font>Y</td><td>MO-85</td><td></td><td align=center>n/a</td><td></td><td>&nbsp;</td></tr>
</table>
<p><h3>Search result for: RZ3DW in UNKNOWN RDA table:</h3></p><b>Sorry no data found for RZ3DW</b>
<CENTER><P><P>
<P>There are 28203 RDA stations in the Database<P></CENTER><h5>
<p><A HREF="rdasearch.htm">RDA ONLINE search page :: РДА страница поиска</A>
<p><A HREF="em.php">RDA eMail request page :: РДА страница запроса по интернет почте</A>
<p><A HREF="unknownrda.php">RDA UNKNOWN callsigns edit page :: РДА редактор базы позывных с неизвестным РДА</A>
<p><A HREF="updaterda.php">RDA ADD page :: РДА добавка нового позывного с известным РДА в базу</A>
<p><A HREF="unknownrdaadd.php">RDA UNKNOWN call add page :: РДА добавка нового позывного с неизвестным РДА в базу</A>
<p><A HREF="statrda.php">RDA DB statistic page :: РДА страница статистики</A>
</h5>
</body>
</html>




Если внимательно посмотреть результат, то можно усмотреть искомые данные в виде РДА. Единственное надо вытащить его из html тэгов.
А вот, откуда берется исходный материал (позывной), я так и не понял. Не понял по причине того что не разу этим не пользовался. Может кто то посвятит меня в курс дела ... :)

Как это можно сделать в Perl.
Первое из adif-а читаем позывной.
open ADIFFILE, "<./adif.adi" or die "лажа";
читаем из него позывной ($num - число знаков в позывном как я понимаю из файла)
while(<ADIFFILE>)
{
if($_=~m/\<CALL\:/){$num=substr $',0,1;
$call=substr $',2,$num;
}
;}
Все в call имеем нужный нам позывной
Отправляем запрос на веб сервер с этим позывным и обрабатываем ответ:

Сразу вычищаем нафиг все теги s/\<.*\>//;
Затем ищем позывной, сразу за ним должен быть вписан RDA
if(m/$call/){$rda=substr $',0,5;}
Проверим на всякий случай чего мы считали, если гадость, то обнуляем переменную:
if(!($rda=~m/[A-Z]{2}\-[0-9]{2}/)){$rda="";}
Ну что, получили данные, смотрим по первому совпадению, можно сделать по любому как нуна.
Теперь создаем новый адиф с измененными данными открываем файл на запись.
open NEWADIFFILE, ">> ./new_adif.adi" or die "лажа какая-то";
while(<ADIFFILE>)
{
if($_=~m/\<CALL\:\d\>/){if($_=~m/\<CQZ\:2\>\d\d){$write=join "", $","<STATE:2>substr $rda,0,2 <CNTY:5>$rda ",$'}
write NEWADIFFILE $write;
}
;}
Ну и закрываем файлы все


Работать с сервером проще всего через модуль net:Telnet
Вот например как выглядит работа при помощи этого модуля с telnet сервером кластера.

use Net::Telnet ();



open (PIDFILE, "+> ./pidfile") or die "can't open pid-file";
print (PIDFILE "$$");
close (PIDFILE);

#connect to cluster

$cluster = new Net::Telnet(
Errmode => "die",
Timeout => 120 ,
Port => 23,
);

$cluster->open("rn6bn.73.ru");

#gdem priglasheniya vvoda logina
$cluster->waitfor('/call:.*$/');

#vvodim login
$cluster->print("RO1BOT");


#gdem nachala raboti
$cluster->waitfor('/arc.>.*$/');

#vvodim foltr
$cluster->print("set/filter dxbandmode/pass 10 6 vhf");
#$cluster->print("set/nofilter");
$cluster->waitfor('/arc.>/');

#no announcments
$cluster->print("set/noann");
$cluster->waitfor('/arc.>/');


print("OK, now we wait \n");



#chitaem spoti
#esli ne prochli proverili est li connect i obratno

label: $cluster->errmode("return"),
($spot) = $cluster->getline()
or $cluster->errmode("die"),
$cluster->print("DX 144310 TE1ST test"),
$cluster->waitfor('/arc.>/'),
print("connect ok \n"),
goto label;


if($spot=~s/DX de//)
{


if(($spot=~m/\s144\d\d\d\.\d\s/||$spot=~m/\s145\d\d\d\.\d\s/)
&&($spot=~m/\sMUF\s/i||$spot=~m/\sMUF2\s/i))

{
print("ES warning\n");
open(ESSPOTFILE, ">> ./spot/ES_warning_144.spt") or die "can't open spot-file";
print ESSPOTFILE $spot;
close (ESSPOTFILE);
$spot="";
};
};

В вашем случае errmode менять не надо, все, что между label: - goto label не нужно.
Это для того, чтобы постоянно держать свзь с кластером и ждать чего интересного.
Тут нужно будет один раз использовать print и один раз waitfor
Так по моему мнению примерно должна выглядеть искомая автором программа.
Если он или кто еще захочет - можно поупражнятся, если что-то непонятно бьудет - объясню.

RN6LIQ
14.07.2009, 01:53
Отказываться не надо, можно просто задать интервал запросов, скажем не более 2-х запросов в секунду. Или можно написать админу сервера.
Все таки придется отказаться :( Только что закончил тестирование этого варианта. Время одного запроса (у меня на 128 Kbit/sec) где то ~300 милисекунд. После где то 20 запроса мой IP попадает в черный список и соединения больше не происходит. Наверное на какое то время. Да и метод запроса к WEB узлу очень медленный. Для каждого позывного надо каждый раз организовывать ТСП соединение. Как только сервер ответил на запрос, он соединение разрывает. Для следующего позывного надо делать открытие следующего ТСП.
Подвожу итог:
Сверку надо делать только с локальной базой.
Если в локальной базе нет такого позывного, надо "откладывать его в сторону".
Другой какой то независимый процесс, который постоянно, но ненавязчиво, проверяет, не появились ли позывные у которых нет соответствия РДА в локальной базе. Если есть, то с небольшим темпом, потихоньку запрашивать у сервера и постепенно обновлять локальную базу. Или вернее сказать уравнивать локальную базу с внешней на сервере.

Добавлено через 8 минут

Если он или кто еще захочет - можно поупражнятся, если что-то непонятно бьудет - объясню.
Начните изучать углубленно еще что либо из языков программирования. Perl все равно язык С не переплюнет по эффективности и быстродействию кода. Все высокоуровневые процедуры являются лишь обертками для функций написанных на С и Ассемблере. А интерпретаторы годятся только для обучения, и автоматизации несложных и некритичных во времени процессов. Без обид ...

RN9RQ
14.07.2009, 02:34
kolotusha
Я могу и на Си, могу на асме, правда под msp430, avr , немного на уровне лаб 51 и наш 580й,
Вот только на перле намного быстрее пишется и в большинстве задач он по скорости не уступит Си при грамотном коде, поскольку Perl не интерпретатор а именно компилятор, сначала вся программа компилируется в байткод, а затем уже из памяти и выполняется.
То, что я написал несколько строк на Perl на Си как бы на несколько страниц не развернулось, если не применять внешние либы вроде регекспов.

Добавлено через 2 минуты
З.Ы. Усиленно мучаю себя haskell, но вам от этого легче точно не станет hi hi

Добавлено через 7 минут
перечитал еще раз...
Мда, не сочтите оскорблением, но все-таки попрошу вас полистать историю Perl и как аббревиатура вообще расшифровывается.
Он изначально и был создан для автоматизации обработки текстовых данных по сети, когда утилиты awk и sed, написанные на C оказались не эффективны.

R8TX
14.07.2009, 05:47
Заполнил свой полный лог, 74 тыс.ЩСО, около 20 секунд, сейчас файл импортируется в логгер, пока логгер нашел 6 ошибок.

Я напишу UA9OV по поводу блокировки по IP, посмотрим что он скажет. В крайнем случае можно сделать чтобы у Вас на сайте база mdb обновлялась бы сама, а у пользователя при запуске программа смотрела бы Ваш сайт на предмет свежей мдб и предлагала бы ее обновить в автоматическом режиме. Но вариант с поиском на сайте dxsoft Вы пока совсем не отвергайте.

R8TX
14.07.2009, 06:40
Импортировалось, 176 ошибок, из них около 150 - старая аббревиатура Якутии - SH, нужно сделать в программе автоматическую замену ">SH" на ">YA".
Все-таки поиск по дробным позывным производится, это плохо, практически 100% вероятность что РДА не соответствует реальному. Дробные позывные нужно тоже исключить из рассмотрения.

Еще распространенная ошибка - <CNTY:4>, в РДА не может бть 4 знака, вроде "<CNTY:4>TM-0".

Logger32 (Version 3.19) ADIF file import exception(s).
Source file - c:\ba.adi
Created 14 июл 2009, 08:36
Operator - RX9TX
<EOH>

Error in the CNTY field: Error in the CNTY field: <BAND:3>40M <CALL:5>UA9OS <STATE:2>NS <CNTY:4>NS-0 <COMMENT:10>Russian DX <CONT:2>AS <CQZ:2>18 <DXCC:2>15 <FREQ:8>7.000000 <ITUZ:2>31 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:3>NS9 <QSL_VIA:5>W3HNK <QSO_DATE:8:D>20000318 <QTH:2>NS <RST_RCVD:3>599 <RST_SENT:3>599 <TIME_ON:6>173635 <TIME_OFF:6>173635 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:4>8530 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>17M <CALL:8>UA1ADQ/0 <STATE:2>TM <CNTY:4>TM-0 <CONT:2>AS <CQZ:2>18 <DXCC:2>15 <FREQ:9>18.073780 <ITUZ:2>31 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:4>UA90 <QSO_DATE:8:D>20030427 <RST_RCVD:3>599 <RST_SENT:3>599 <TIME_ON:6>110349 <TIME_OFF:6>110349 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>24336 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>20M <CALL:6>UE9GDA <STATE:2>KP <CNTY:4>KP-0 <CONT:2>AS <CQZ:2>17 <DXCC:2>15 <FREQ:9>14.175000 <ITUZ:2>30 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:3>UE9 <QSL_RCVD:1>Y <QSL_SENT:1>Y <QSL_VIA:6>RA9FDR <QSLRDATE:8>20040123 <QSLSDATE:8>20040126 <QSO_DATE:8:D>20030819 <RST_RCVD:2>59 <RST_SENT:2>59 <TIME_ON:6>045600 <TIME_OFF:6>045600 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>26065 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>40M <CALL:7>UA9OK/P <STATE:2>NS <CNTY:4>NS-2 <CONT:2>AS <CONTEST_ID:6>FDREG1 <CQZ:2>18 <DXCC:2>15 <FREQ:8>7.007380 <ITUZ:2>31 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20040606 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:3>197 <STX:3>121 <TIME_ON:6>024653 <TIME_OFF:6>024653 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>31125 <EOR>

Error in the STATE field: Error in the STATE field: <ADDRESS:54>Energitikov 21-3, 618340 pgt Yajva, Russian Federation <BAND:3>20M <CALL:9>RA9FNV/MM <STATE:2>VO <CNTY:5>VO-13 <CONT:2>AS <CQZ:1>0 <DXCC:2>15 <FREQ:9>14.172000 <ITUZ:1>0 <MODE:3>SSB <NAME:4>Alex <OPERATOR:5>RX9TX <PFX:3>RA9 <QSO_DATE:8:D>20040731 <RST_RCVD:2>59 <RST_SENT:2>59 <TIME_ON:6>062023 <TIME_OFF:6>062023 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>32553 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>20M <CALL:5>UA9OS <STATE:2>NS <CNTY:4>NS-0 <CONT:2>AS <CQZ:2>18 <DXCC:2>15 <FREQ:9>14.000000 <ITUZ:2>31 <MODE:3>SSB <NOTES:4>OB36 <OPERATOR:7>RX9TX/P <QSL_SENT:1>Y <QSL_VIA:5>W3HNK <QSLSDATE:8>20040804 <QSO_DATE:8:D>20040801 <RST_RCVD:2>59 <RST_SENT:2>59 <TIME_ON:6>100320 <TIME_OFF:6>100320 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>32652 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>20M <CALL:5>UA9OS <STATE:2>NS <CNTY:4>NS-0 <CONT:2>AS <CONTEST_ID:9>RUSSIANDX <CQZ:2>18 <DXCC:2>15 <FREQ:9>14.027130 <ITUZ:2>31 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20050320 <RST_RCVD:3>599 <RST_SENT:3>599 <STX:3>803 <TIME_ON:6>032736 <TIME_OFF:6>032736 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>40239 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>20M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:3>CQM <CQZ:2>17 <DXCC:2>15 <FREQ:9>14.009620 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSL_RCVD:1>Y <QSLRDATE:8>20060403 <QSO_DATE:8:D>20050514 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:3>230 <STX:3>160 <TIME_ON:6>150557 <TIME_OFF:6>150557 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>40889 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>40M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:3>CQM <CQZ:2>17 <DXCC:2>15 <FREQ:8>7.034260 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSL_RCVD:1>Y <QSLRDATE:8>20060403 <QSO_DATE:8:D>20050514 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:3>449 <STX:3>306 <TIME_ON:6>172655 <TIME_OFF:6>172655 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>41035 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>20M <CALL:7>UA9OK/P <STATE:2>NS <CNTY:4>NS-2 <CONT:2>AS <CONTEST_ID:6>FDREG1 <CQZ:2>18 <DXCC:2>15 <FREQ:9>14.000000 <ITUZ:2>31 <MODE:2>CW <NOTES:4>OB37 <OPERATOR:7>RX9TX/P <QSL_SENT:1>Y <QSLSDATE:8>20050605 <QSO_DATE:8:D>20050604 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:2>24 <STX:1>8 <TIME_ON:6>162059 <TIME_OFF:6>162059 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>41675 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>15M <CALL:5>RA6CO <STATE:2>KR <CNTY:5>KR-?? <CONT:2>EU <CONTEST_ID:9>ALLASIACW <CQZ:2>16 <DXCC:2>54 <FREQ:9>21.022020 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20050619 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:2>35 <STX:3>297 <TIME_ON:6>060116 <TIME_OFF:6>060116 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>42305 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>20M <CALL:5>RA6CO <STATE:2>KR <CNTY:5>KR-?? <CONT:2>EU <CONTEST_ID:5>WAECW <CQZ:2>16 <DXCC:2>54 <FREQ:9>14.028070 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20050814 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:2>14 <STX:3>577 <TIME_ON:6>111344 <TIME_OFF:6>111344 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>44039 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>80M <CALL:7>RW0LZ/P <STATE:2>PK <CNTY:4>PK-3 <CONT:2>AS <CONTEST_ID:9>RUSSIANDX <CQZ:2>19 <DXCC:2>15 <FREQ:8>3.511630 <ITUZ:2>34 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20060318 <RST_RCVD:3>599 <RST_SENT:3>599 <STX:3>513 <TIME_ON:6>171646 <TIME_OFF:6>171646 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>50895 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>17M <CALL:6>RP61XX <STATE:2>KO <CNTY:5>KO-01 <COMMENT:31>WWV at 0600 : SFI 86, A 19, K 4 <CONT:2>EU <CQZ:2>16 <DXCC:2>54 <FREQ:9>18.071100 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:4>RP61 <QSO_DATE:8:D>20060508 <RST_RCVD:3>599 <RST_SENT:3>599 <TIME_ON:6>075526 <TIME_OFF:6>075526 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>51859 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>30M <CALL:5>R60FW <STATE:2>KA <CNTY:5>KA-23 <COMMENT:31>WWV at 1500 : SFI 88, A 13, K 4 <CONT:2>EU <CQZ:2>16 <DXCC:2>54 <FREQ:9>10.106000 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:3>R60 <QSO_DATE:8:D>20060822 <RST_RCVD:3>599 <RST_SENT:3>559 <TIME_ON:6>160110 <TIME_OFF:6>160110 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>54724 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>30M <CALL:5>R860T <STATE:2>TL <CNTY:5>TL-05 <COMMENT:30>WWV at 1200 : SFI 84, A 7, K 2 <CONT:2>AS <CQZ:2>18 <DXCC:2>15 <FREQ:9>10.107200 <ITUZ:2>32 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:4>R860 <QSL_RCVD:1>Y <QSLRDATE:8>20071209 <QSO_DATE:8:D>20060907 <RST_RCVD:3>599 <RST_SENT:3>599 <TIME_ON:6>144443 <TIME_OFF:6>144443 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>54856 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:4>160M <CALL:5>UA9OS <STATE:2>NS <CNTY:4>NS-0 <CONT:2>AS <CQZ:2>18 <DXCC:2>15 <ITUZ:2>31 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20070126 <TIME_ON:6>180831 <TIME_OFF:6>180831 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>58797 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>15M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CQZ:2>17 <DXCC:2>15 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20070513 <TIME_ON:6>090513 <TIME_OFF:6>090513 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>60615 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>20M <CALL:7>RA1OZ/1 <STATE:2>NA <CNTY:5>NA-01 <CONT:2>EU <CONTEST_ID:9>RUSSIANDX <CQZ:2>16 <DXCC:2>54 <FREQ:9>14.008860 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <QSL_RCVD:1>Y <QSLRDATE:8>20090205 <QSO_DATE:8:D>20080316 <RST_RCVD:3>599 <RST_SENT:3>599 <STX:4>1078 <TIME_ON:6>042502 <TIME_OFF:6>042502 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>66656 <FREQ_RX:8>14.00886 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>40M <CALL:7>RA1OZ/1 <STATE:2>NA <CNTY:5>NA-01 <CONT:2>EU <CONTEST_ID:4>RDXC <CQZ:2>16 <DXCC:2>54 <FREQ:8>7.001330 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20090322 <RST_RCVD:3>599 <RST_SENT:3>599 <STX:3>796 <TIME_ON:6>051158 <TIME_OFF:6>051158 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>72089 <FREQ_RX:7>7.00133 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>40M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:4>CQ-M <CQZ:2>17 <DXCC:2>15 <FREQ:8>7.011550 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20090510 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:4>1030 <STX:3>177 <TIME_ON:6>014444 <TIME_OFF:6>014444 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>72615 <FREQ_RX:7>7.01155 <EOR>

Error in the CNTY field: Error in the CNTY field: <BAND:3>20M <CALL:7>RW0LZ/P <STATE:2>PK <CNTY:4>PK-3 <CONT:2>AS <CONTEST_ID:4>CQ-M <CQZ:2>19 <DXCC:2>15 <FREQ:9>14.025680 <ITUZ:2>34 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20090510 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:2>62 <STX:3>337 <TIME_ON:6>065352 <TIME_OFF:6>065352 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>72775 <FREQ_RX:8>14.02568 <EOR>

Error in the STATE field: Error in the STATE field: <BAND:3>20M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:4>CQ-M <CQZ:2>17 <DXCC:2>15 <FREQ:9>14.024000 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20090510 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:4>1396 <STX:3>360 <TIME_ON:6>085957 <TIME_OFF:6>085957 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>72798 <FREQ_RX:8>14.02400 <EOR>

RA6XTD
14.07.2009, 06:43
То, что я написал несколько строк на Perl на Си как бы на несколько страниц не развернулось, если не применять внешние либы вроде регекспов.
Вы забыли про прикладную сторону вопроса.
Вот скажите. Кто из присутствующих тут на форуме запустит вашу perl-программу?
Причем даже не программу, а наброски ее частей.
Все сидят на линуксе, у всех стоит апач или Denwer?
Или вы думаете RX9TX сможет сам написать

"Отправляем запрос на веб сервер с этим позывным и обрабатываем ответ:
Сразу вычищаем нафиг все теги s/\<.*\>//;"

Здесь не программистский форум где страждущие просят помочь советом, алгоритмом, где действительно решения на блюдечке не приветствуются. Человек попросил ему помочь. Ему не нужны ваши советы и рекомендации. Я не думаю, что RX9TX программист. Ему нужна конечная, рабочая, конкретная программа. Тема так и называется. Поэтому простите, но ваш пост http://forum.qrz.ru/post285480-140.html не несет в себе никакой практической пользы для тех, кому нужно конкретное решение. И вы можете неискушенным людям сколько угодно говорить о достоинствах того или иного языка, сколько угодно говорить, что для вас на ассемблере наваять подобное - пустяки (только вот времени нет) - но пока конечный пользователь не сможет пощупать результаты вашего труда - грош цена вашим словам.


Да и метод запроса к WEB узлу очень медленный. Для каждого позывного надо каждый раз организовывать ТСП соединение. Как только сервер ответил на запрос, он соединение разрывает.
Вот вопрос - получится ли не разрывать соединение и организовать обмен типа чата.


Заполнил свой полный лог, 74 тыс.ЩСО, около 20 секунд, сейчас файл импортируется в логгер, пока логгер нашел 6 ошибок.
Если можно на мыло скиньте строки с ошибками.
Т.е. оригинальную строку и что сделала программа.


В крайнем случае можно сделать чтобы у Вас на сайте база mdb обновлялась бы сама, а у пользователя при запуске программа смотрела бы Ваш сайт на предмет свежей мдб и предлагала бы ее обновить в автоматическом режиме.
А каким образом? С чем сравнить? Ведь там просто обычная форма с единственным полем (позывной), php-программка потом отрабатывает и возвращает html-ку с результатами. Т.е. там нет доступа к полной базе, с которой можно было сравнить имеющуюся. Единственный источник, который можно скачать - это сайт rda. Тот самый xls файл. Но вы его забраковали.


Я напишу UA9OV по поводу блокировки по IP, посмотрим что он скажет.
Это не выход. Я к нему обратился с извинениями и советом как выйти из данной ситуации. А там видно будет.

Добавлено через 9 минут

Импортировалось, 176 ошибок, из них около 150 - старая аббревиатура Якутии - SH.
Если можно - там где ошибки не относящиеся к <CNTY:4> укажите оригинальную строку.
И с Якутией что делать? Менять SH на YA?
Потом тут вот Error in the STATE field: Error in the STATE field: <BAND:3>40M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 явно не нравится логгеру, что 9J а SM-10
Тут как подправить если мемориальные станции и номер района не соответствует номеру области?


Все-таки поиск по дробным позывным производится, это плохо, практически 100% вероятность что РДА не соответствует реальному. Дробные позывные нужно тоже исключить из рассмотрения.
OK. Дроби киттык.


Еще распространенная ошибка - <CNTY:4>, в РДА не может бть 4 знака, вроде "<CNTY:4>TM-0".
Не может. Но там ошибки нет программной.
Там идет в базе так. Вот, например, UA9OS
UA9OS NS-0 5,2003 +
UA9OS NS-07 5,2003 +
UA9OS NS-03 HOME +
Ну случаи, подобные NS-0 подправлю.
Но дальше он подтвердил HOME позже, чем иной QTH (ID 13776 и 13775).
Как быть с этим? Надписи HOME у меня вот нет. Т.е. это тоже не критерий поиска.

Алексей уже вопрос этот поднимал. Что делать, если записей несколько.

R8TX
14.07.2009, 06:57
А каким образом? С чем сравнить? Ведь там просто обычная форма с единственным полем (позывной), php-программка потом отрабатывает и возвращает html-ку с результатами. Т.е. там нет доступа к полной базе, с которой можно было сравнить имеющуюся. Единственный источник, который можно скачать - это сайт rda. Тот самый xls файл. Но вы его забраковали.
Ну значит кроме запросов с сайта - единственный выход - вручную компилить mdb файл :(

Кстати, в форме на сайте есть даты работы той или иной станции. В АДДИФе тоже есть дата, может можно сделать сравнение дат и вытаскивать именно нужный РДА по дате?

Добавлено через 45 секунд

Если можно на мыло скиньте строки с ошибками.
Т.е. оригинальную строку и что сделала программа.

Файл в предыдущем письме, кроме ошибок SH-YA.

UG4A
14.07.2009, 07:12
Пятой версией проверил адиф - все позывные распознал, но только номеров нет, только буквенное сочетание, это так и должно или я что то не то сделал?

RN6LIQ
14.07.2009, 07:13
Он изначально и был создан для автоматизации обработки текстовых данных по сети, когда утилиты awk и sed, написанные на C оказались не эффективны.
В данном случае никакая припарка не поможет. Для данной задачи сетевой вариант не поможет, в том виде как его хочет видеть RX9TX. Что Вы думаете о варианте выравнивания баз, что я описал выше?

Добавлено через 33 минуты

Вот вопрос - получится ли не разрывать соединение и организовать обмен типа чата.
Обратимся к протоколу HTTP

Структура HTTP-запроса

HTTP-запрос состоит из заголовка запроса и тела запроса, разделенных пустой строкой. Тело запроса может отсутствовать.

Заголовок запроса состоит из главной (первой) строки запроса и последующих строк, уточняющих запрос в главной строке. Последующие строки также могут отсутствовать.
.......

Перечислю некоторые наиболее употребительные параметры HTTP-запроса:

Connection (соединение)- может принимать значения Keep-Alive и close. Keep-Alive ("оставить в живых") означает, что после выдачи данного документа соединение с сервером не разрывается, и можно выдавать еще запросы. Большинство браузеров работают именно в режиме Keep-Alive, так как он позволяет за одно соединение с сервером "скачать" html-страницу и рисунки к ней. Будучи однажды установленным, режим Keep-Alive сохраняется до первой ошибки или до явного указания в очередном запросе Connection: close.
close ("закрыть") - соединение закрывается после ответа на данный запрос.
........
Формат HTTP-ответа
Connection - аналогичен соответствующему параметру запроса.
Если сервер не поддерживает Keep-Alive (есть и такие), то значение Connection в ответе всегда close.

Поэтому, на мой взгляд, правильной тактикой браузера является следующая:
1. выдать в запросе Connection: Keep-Alive;
2. о состоянии соединения судить по полю Connection в ответе.



И вот что нам сервер возвращает

HTTP/1.1 200 OK
Date: Mon, 13 Jul 2009 21:32:33 GMT
Server:
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

Тоесть он не поддерживает режим обширных запросов при одном соединении

Более полная инфа на http://www.angel07.webservis.ru/internet/http.html

UA1CEC
14.07.2009, 07:48
Вот сейчас снова скачал вер5.Все ок прошло.
Интересно почему он вчера так криво качал.
Приеду домой весь лог залью.

R8TX
14.07.2009, 08:06
И с Якутией что делать? Менять SH на YA?
Да.


Потом тут вот Error in the STATE field: Error in the STATE field: <BAND:3>40M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 явно не нравится логгеру, что 9J а SM-10
Тут как подправить если мемориальные станции и номер района не соответствует номеру области?
Здесь какая-то ошибка. Логгер "цуко" умный, он при импорте проверяет соответствие европейского или азиатского префикса области, если префикс азиатский, а область европейская то он выдает ошибку. Оставляйте как есть, это пусть каждый сам правит руками.


OK. Дроби киттык.
ОК, "киттеляр" :)


A9OS NS-0 5,2003 +
UA9OS NS-07 5,2003 +
UA9OS NS-03 HOME +
Ну случаи, подобные NS-0 подправлю.
Но дальше он подтвердил HOME позже, чем иной QTH (ID 13776 и 13775).
Как быть с этим? Надписи HOME у меня вот нет. Т.е. это тоже не критерий поиска.
Алексей уже вопрос этот поднимал. Что делать, если записей несколько.
Тупо брать первую правильную запись, в которой 5 знаков. Другого выхода не вижу. Если только не сравнивать по дате.

RX4HX
14.07.2009, 08:24
RX-Alexei, проверьте, пожалуйста, как у вас.

У меня время выполнения стало 0 секунд :) Практически моментально с внутренней базой.
Программа кстати действительно может быть полезна - так что думаю ее стоит на сайте разместить.

R8TX
14.07.2009, 08:34
Программа кстати действительно может быть полезна - так что думаю ее стоит на сайте разместить.
Да неужели? :)

RX4HX
14.07.2009, 08:35
В крайнем случае можно сделать чтобы у Вас на сайте база mdb обновлялась бы сама, а у пользователя при запуске программа смотрела бы Ваш сайт на предмет свежей мдб и предлагала бы ее обновить в автоматическом режиме.

Это не крайний случай, это самый правильный случай :)
Если посмотреть вообще все подобные программы (не обязательно радиолюбительсвие), они все так и сделаны. Самый простой в плане программирования вариант: на сервере в папке с базой размещать файлик с номером версии. Тогда все просто - проверяем номер версии, если новая - предлагаем скачать. Ну или как то так :)

RA6XTD
14.07.2009, 08:38
Ну значит кроме запросов с сайта - единственный выход - вручную компилить mdb файл
Ну я сейчас сделаю с задержкой.
Скажем полсекунды выполняется HTTP запрос, секунду спим.
Т.е. 1000 QSO за 25 минут обработается (примерно). Не строк в логе, а именно QSO без занесенных STATE.
Лишь бы секундная пауза все равно не привела к блокировке IP.


Что Вы думаете о варианте выравнивания баз, что я описал выше?
Тоже вариант. Можно комбинировано сделать. Т.е. искать в базе, а если не найдено - то в Интернете. Так запросов куда меньше будет.


Обратимся к протоколу HTTP
Спасибо. Я, в принципе, в теории все это знал, просто на практике не применял, хотя с сокетами работал.
Для меня один вопрос только - как сервер узнает, что я окончательно передал запрос? Что в конце передавать?


Да.
ОК. Не проблема.


Здесь какая-то ошибка. Логгер "цуко" умный, он при импорте проверяет соответствие европейского или азиатского префикса области, если префикс азиатский, а область европейская то он выдает ошибку. Оставляйте как есть, это пусть каждый сам правит руками
ОК. Пока оставим.


Тупо брать первую правильную запись, в которой 5 знаков. Другого выхода не вижу. Если только не сравнивать по дате.
Ну да. Я так и хотел. Некорректные RDA с 4-мя символами или типа KB-?? будем игнорировать, а брать первый корректный.
Просто я сразу не заметил, что в rda.xls есть некорректные записи.

Добавлено через 4 минуты

Это не крайний случай, это самый правильный случай
Только вот вопрос.
Как пополнять эту самую базу?
Конвертировать мне xls с сайта Романа не проблема.
Но ведь он (файл) не каждый день обновляется.

В общем тут поле для деятельности широкое.

R8TX
14.07.2009, 08:46
Только вот вопрос.
Как пополнять эту самую базу?
Конвертировать мне xls с сайта Романа не проблема.
Но ведь он (файл) не каждый день обновляется.

В общем тут поле для деятельности широкое.
Теперь придется еще и конвертилку писать, чтобы она у Романа xls забирала, конверттила в mdb и сама заливала к Вам на сайт :) Раз в неделю.

RX4HX
14.07.2009, 08:56
Только вот вопрос.
Как пополнять эту самую базу?
Конвертировать мне xls с сайта Романа не проблема.
Но ведь он (файл) не каждый день обновляется.

Мне представляется такой вариант:
1. В архиве программы вообще по началу никакой базы нет.
2. При первом запуске скачиваем с сайта RX3RC файлик xls и конвертируем его в mdb.
3. Далее запоминаем дату или размер файлика.
4. При наличии галочки "автоматическое обновление" при каждом запуске проверяем на новую версию. (Сравнивая дату или размер файла на сервере.)
5. Если пользователь ответил ДА на предложение обновить - идем пункт 2.
Мне кажется так самое простое.

Добавлено через 11 минут
Единственное только что:
файлик с районами заархивирован - т.е. необходимо, чтобы у пользователя WinRAR стоял - что как бы не верно. Файлик в формате Экселя - то есть для конвертации еще и Эксель нужен :) - что еще более неверно. Наверно самое простое попросить выкладивать на сайте файлик в обычном текстовом формате - самое простое!

R8TX
14.07.2009, 09:11
Единственное только что:
файлик с районами заархивирован - т.е. необходимо, чтобы у пользователя WinRAR стоял - что как бы не верно. Файлик в формате Экселя - то есть для конвертации еще и Эксель нужен - что еще более неверно. Наверно самое простое попросить выкладивать на сайте файлик в обычном текстовом формате - самое простое!
Поэтому лучше все это делать на стороне RA6XTD. Вот так: "конвертилку писать, чтобы она у Романа xls забирала, конверттила в mdb и сама заливала к Вам на сайт". А на стороне пользователя только проверяется наличие более свежей базы у RA6XTD и при необходимости эта база скачивается. Или можно все это делать прямо на сайте RDA, чтобы Маскима не грузить.

RX4HX
14.07.2009, 09:14
Написал Роману письмо - подождем что ответит!

Добавлено через 2 минуты

Поэтому лучше все это делать на стороне RA6XTD.

Мне кажется более верно, что база должна быть ОДНА, и именно на сайте РДА - это как бы по логике самое верное. Тем более что форматированный тексторый файлик из экселевского - делается без проблем!

R8TX
14.07.2009, 09:25
Мне кажется более верно, что база должна быть ОДНА, и именно на сайте РДА - это как бы по логике самое верное. Тем более что форматированный тексторый файлик из экселевского - делается без проблем!
теперь дело за конверилкой .xls->.mdb :)

RN6LIQ
14.07.2009, 09:26
Спасибо. Я, в принципе, в теории все это знал, просто на практике не применял, хотя с сокетами работал.
Для меня один вопрос только - как сервер узнает, что я окончательно передал запрос? Что в конце передавать?
Не подумайте, что это я Вас пытался учить. Это я пытался объяснить RX9TX, почему не получиться его вариант.
Попробовал делать задержку запросов 5 сек. Список сделал небольшим - 233 записи. Весь список был получен без проблем. Попробовал сделать задержку 1 секунда. Список был запрошен без проблем. Тоесть для выравнивания баз, этот метод подходит. Только долгим будет.
А в конце передавать зависит от запроса.
Вот мой кусок кода с запросом

// Этот заголовок постоянен
char PRDzag[1024] = {
"POST /rda/rdasearch.php HTTP/1.1\r\n"
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"
"Referer: http://www2.dxsoft.com/rda/rdasearch.php\r\n"
"Accept-Language: ru\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n"
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 5.2 (build 02405); MRSPUTNIK 2, 0, 1, 31 SW; .NET CLR 2.0.50727)\r\n"
"Host: www2.dxsoft.com\r\n"
"Content-Length: 14\r\n"
"Connection: Keep-Alive\r\n"
"Cache-Control: no-cache\r\n"
"\r\n"
};
// Непосредственно функция запроса
int SendInquiry(char *call)
{
char str[256];
if(statusInt!=9) return 0;// Если соединение TCP не установлено - Выход
// Сначала передаем заголовок
send(cli_socket,(const char FAR *)PRDzag, strlen(PRDzag),0);
// Теперь формируем строку, где указывается позывной
sprintf(str,"callsign=%s\r\n",call);
// И передаем серверу
send(cli_socket,(const char FAR *)str, strlen(str),0);
// как только сервер ее получит, начнет отвечать
// как ответит, сам закроет соединение
return 1;
}



А если запрашивать позывные по РДА то выдаваемый список больше. В принципе, перебрать все РДА будет быстрее, чем перебрать все позывные :) ну а потом уже на локальном уровне создать список от обратного :)

RZ4AG
14.07.2009, 09:31
Так. 6-й билд.

Причем подвис сервер dxsoft. Или просто мой IP сервер или их провайдер заблокировал. http://www2.dxsoft.com/ уже у меня не грузится. :(
Неудобно как-то...:suicide2:
"Время ожидания ответа от сервера www2.dxsoft.com истекло.
* Возможно, сайт временно недоступен или перегружен запросами. Подождите некоторое время и попробуйте снова.
..."

Я ж говорил - это фактически DDoS атака.
Не рассчитан сервер на такое количество запросов.



а по голове? Значит так, или вы убираете онлайн поиск или база рда перестает существовать на сервере dxsoft. Надеюсь понятно объяснил?

RN6LIQ
14.07.2009, 09:36
а по голове? Значит так, или вы убираете онлайн поиск или база рда перестает существовать на сервере dxsoft. Надеюсь понятно объяснил?
Суд начал вершиться :)
А если серьезно, на какую нагрузку запросов рассчитан сервер dxsoft ? Какой его нормальный режим работы?

UA9OV
14.07.2009, 10:02
Суд начал вершиться :)
А если серьезно, на какую нагрузку запросов рассчитан сервер dxsoft ? Какой его нормальный режим работы?

Онлайн-база хостится на нашем резервном сервере, www2.dxsoft.com, он же www.hamport.com.

Это обычный shared hosting за $9.95/месяц, так что ждать от него чудес производительности - наивно :)

Желающие могут проспонсировать RDA-team выделенным сервером в десять раз дороже :)

R8TX
14.07.2009, 10:15
а по голове? Значит так, или вы убираете онлайн поиск или база рда перестает существовать на сервере dxsoft. Надеюсь понятно объяснил?
Поздно пить боржоми, все уже скачали версию с онлайн поиском :)

RX4HX
14.07.2009, 10:19
Будем просить Романа выкладывать текстовую версию базы данных по РДА!
А на счет онлайн запроса - это сразу было понятно, что этим закончится...

RN6LIQ
14.07.2009, 10:27
Будем просить Романа выкладывать текстовую версию базы данных по РДА!
А на счет онлайн запроса - это сразу было понятно, что этим закончится...
И грабли знакомые, и лежат на том же месте, но почему то опять нога тянется... :)

RA6XTD
14.07.2009, 10:29
а по голове? Значит так, или вы убираете онлайн поиск или база рда перестает существовать на сервере dxsoft. Надеюсь понятно объяснил?
Что ж тут не понятного? :)
Хотя зачем так грубо?
Я написал с утра Сергею письмо. В том числе и извинился.
При этом он сказал, что причиной недоступности сервера могла быть и не программа, а проблемы в Интернете.

Позвольте проверить поиск с секундной задержкой между запросами.
Не думаю, что серверу поплохеет. Давайте 7-й билд посмотрим и решим.

Если ваше требование по идеологическим причинам - уберу без проблем сразу же!!!

В этом случае давайте продумаем вариант ежедневного обновления базы в текстовом или xls формате. Онлайн поиск люди просили именно потому, что xls выкладывается нерегулярно и онлайн-база самая полная. При возможности скачать полную базу в текстовом виде онлайн поиск абсолютно не нужен!!!


теперь дело за конверилкой .xls->.mdb
Да это не проблема.

Значит 7-й билд.
Убрал обработку дробей, замена SH на YA, игнорирование неправильных RDA, секундная задержка при онлайне.
Проверьте, пожалуйста. Уменьшилось ли количество ошибок? Должны остаться азиатско/европейские особенности.


Поздно пить боржоми, все уже скачали версию с онлайн поиском
Нет нет. Так тоже нельзя говорить. :(
Их могут от хостинга отрубить если обращение к их скриптам будет перегружать сервер!!!!
Давайте посмотрим приемлема ли секундная задержка. Если все равно нагрузка серьезная - я уберу онлайн не раздумывая.


Будем просить Романа выкладывать текстовую версию базы данных по РДА!
Да, это единственный, видимо, выход.

R8TX
14.07.2009, 10:33
А на счет онлайн запроса - это сразу было понятно, что этим закончится...
Почему, никто же не знал что там или сервер слабый или такая суровая защита от атак стоит. 1 запрос в секунду то он держит, для заполнения лога после теста вполне потянет.

Добавлено через 2 минуты

И грабли знакомые, и лежат на том же месте, но почему то опять нога тянется...
:)

Добавлено через 17 минут

Значит 7-й билд.
Убрал обработку дробей, замена SH на YA, игнорирование неправильных RDA, секундная задержка при онлайне.
Проверьте, пожалуйста. Уменьшилось ли количество ошибок? Должны остаться азиатско/европейские особенности.
Импортировалось 5 тыс ЩСО из 74 тыс, пока без ошибок. Через полчаса посмотрим.

Кстати неплохо бы сделать и английский интерфейс к программе.

RA6XTD
14.07.2009, 10:56
Кстати неплохо бы сделать и английский интерфейс к программе.
Пусть русский учат. :)

Добавлено через 2 минуты

Импортировалось 5 тыс ЩСО из 74 тыс, пока без ошибок. Через полчаса посмотрим.
Вы еще гляньте такой момент - все ли наши позывные (которые без дробей) обработаны. А то ошибок нет, может и данных-то нет. :)

R8TX
14.07.2009, 11:14
Пусть русский учат.
Тогда надо об этом написать где нибудь на свободном месте, но на английском :) Серьезно, среди фанатов РДА много иностранцев, если нужно - помогу.


Вы еще гляньте такой момент - все ли наши позывные (которые без дробей) обработаны. А то ошибок нет, может и данных-то нет.
Пока только половина лога импортировалась, ошибок нет. Логгер скрупулезно проверяет все записи на соответствие стандарту АДИФ, иногда это раздражает :)

RX4HX
14.07.2009, 11:15
онлайн-база самая полная

Так почему бы не сделать ВОЗМОЖНОСТЬ КАК РАЗ СКАЧИВАТЬ эту базу? Вот и решение всех проблем!

RA6XTD
14.07.2009, 11:26
ак почему бы не сделать ВОЗМОЖНОСТЬ КАК РАЗ СКАЧИВАТЬ эту базу? Вот и решение всех проблем!
Ну это надо спросить у владельцев этой базы.

R8TX
14.07.2009, 11:47
Вы еще гляньте такой момент - все ли наши позывные (которые без дробей) обработаны. А то ошибок нет, может и данных-то нет.
Все отлично, 15 тысяч (!) ЩСО получили свои записи о РДА. Одна особенность, если в записи есть область, но нет РДА, то РДА уже не ищется. Такое бывает после RDXC, когда в лог переносятся области из контест-лога. Но \то мелочи, пусть остается как есть. Теперь осталось только решить вопрос с автоматическим обновлением базы и английским интерфейсом :)

Logger32 (Version 3.19) ADIF file import exception(s).
Source file - c:\program files\rda2adi\full_rda.adi
Created 14 июл 2009, 13:16
Operator - RX9TX
<EOH>

Error in the STATE field: <BAND:3>20M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:3>CQM <CQZ:2>17 <DXCC:2>15 <FREQ:9>14.009620 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSL_RCVD:1>Y <QSLRDATE:8>20060403 <QSO_DATE:8:D>20050514 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:3>230 <STX:3>160 <TIME_ON:6>150557 <TIME_OFF:6>150557 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>40889 <EOR>

Error in the STATE field: <BAND:3>40M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:3>CQM <CQZ:2>17 <DXCC:2>15 <FREQ:8>7.034260 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSL_RCVD:1>Y <QSLRDATE:8>20060403 <QSO_DATE:8:D>20050514 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:3>449 <STX:3>306 <TIME_ON:6>172655 <TIME_OFF:6>172655 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>41035 <EOR>

Error in the STATE field: <BAND:3>17M <CALL:6>RP61XX <STATE:2>KO <CNTY:5>KO-01 <COMMENT:31>WWV at 0600 : SFI 86, A 19, K 4 <CONT:2>EU <CQZ:2>16 <DXCC:2>54 <FREQ:9>18.071100 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:4>RP61 <QSO_DATE:8:D>20060508 <RST_RCVD:3>599 <RST_SENT:3>599 <TIME_ON:6>075526 <TIME_OFF:6>075526 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>51859 <EOR>

Error in the STATE field: <BAND:3>30M <CALL:5>R60FW <STATE:2>KA <CNTY:5>KA-23 <COMMENT:31>WWV at 1500 : SFI 88, A 13, K 4 <CONT:2>EU <CQZ:2>16 <DXCC:2>54 <FREQ:9>10.106000 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:3>R60 <QSO_DATE:8:D>20060822 <RST_RCVD:3>599 <RST_SENT:3>559 <TIME_ON:6>160110 <TIME_OFF:6>160110 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>54724 <EOR>

Error in the STATE field: <BAND:3>30M <CALL:5>R860T <STATE:2>TL <CNTY:5>TL-05 <COMMENT:30>WWV at 1200 : SFI 84, A 7, K 2 <CONT:2>AS <CQZ:2>18 <DXCC:2>15 <FREQ:9>10.107200 <ITUZ:2>32 <MODE:2>CW <OPERATOR:5>RX9TX <PFX:4>R860 <QSL_RCVD:1>Y <QSLRDATE:8>20071209 <QSO_DATE:8:D>20060907 <RST_RCVD:3>599 <RST_SENT:3>599 <TIME_ON:6>144443 <TIME_OFF:6>144443 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>54856 <EOR>

Error in the STATE field: <BAND:3>15M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CQZ:2>17 <DXCC:2>15 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20070513 <TIME_ON:6>090513 <TIME_OFF:6>090513 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>60615 <EOR>

Error in the STATE field: <BAND:3>40M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:4>CQ-M <CQZ:2>17 <DXCC:2>15 <FREQ:8>7.011550 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20090510 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:4>1030 <STX:3>177 <TIME_ON:6>014444 <TIME_OFF:6>014444 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>72615 <FREQ_RX:7>7.01155 <EOR>

Error in the STATE field: <BAND:3>20M <CALL:4>RP9J <STATE:2>SM <CNTY:5>SM-19 <CONT:2>AS <CONTEST_ID:4>CQ-M <CQZ:2>17 <DXCC:2>15 <FREQ:9>14.024000 <ITUZ:2>20 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20090510 <RST_RCVD:3>599 <RST_SENT:3>599 <SRX:4>1396 <STX:3>360 <TIME_ON:6>085957 <TIME_OFF:6>085957 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>72798 <FREQ_RX:8>14.02400 <EOR>

RN9RQ
14.07.2009, 12:27
Вы забыли про прикладную сторону вопроса.
Вот скажите. Кто из присутствующих тут на форуме запустит вашу perl-программу?
Причем даже не программу, а наброски ее частей.
Все сидят на линуксе, у всех стоит апач или Denwer?
Или вы думаете RX9TX сможет сам написать

"Отправляем запрос на веб сервер с этим позывным и обрабатываем ответ:
Сразу вычищаем нафиг все теги s/\<.*\>//;"

Здесь не программистский форум где страждущие просят помочь советом, алгоритмом, где действительно решения на блюдечке не приветствуются. Человек попросил ему помочь. Ему не нужны ваши советы и рекомендации. Я не думаю, что RX9TX программист. Ему нужна конечная, рабочая, конкретная программа. Тема так и называется. Поэтому простите, но ваш пост http://forum.qrz.ru/post285480-140.html не несет в себе никакой практической пользы для тех, кому нужно конкретное решение. И вы можете неискушенным людям сколько угодно говорить о достоинствах того или иного языка, сколько угодно говорить, что для вас на ассемблере наваять подобное - пустяки (только вот времени нет) - но пока конечный пользователь не сможет пощупать результаты вашего труда - грош цена вашим словам.


А причем тут веб серев апач и какой-то денвер и Perl? Причем тут вообще linux?
И давайте RX9TX сам напишет, он ведь не маленький. Если ему не надо ну и пофиг.
Про ассемблер я не говорил что я могу на нем наваять подобное. Не в этой жизни.

А результаты, выложил, щупайте сколько вам угодно.

Добавлено через 7 минут

Цитата:
Сообщение от RN9RQ Посмотреть сообщение
Он изначально и был создан для автоматизации обработки текстовых данных по сети, когда утилиты awk и sed, написанные на C оказались не эффективны.
В данном случае никакая припарка не поможет. Для данной задачи сетевой вариант не поможет, в том виде как его хочет видеть RX9TX. Что Вы думаете о варианте выравнивания баз, что я описал выше?

В таком варианте Метод рабочи, однако я плохо понимаю, зачем на таких объемах создавать базу данных. Ах да, delphi для автоматизации работ с БД и создан изначально.
По уму, на сервер бы небольшой скрипт, который раз в пару дней создавал txt файл с RDA районами и позывными.
По примочкам, а они там и не нужны.
Ради интереса можно написать 2 программы и сравнить время работы.
Вы удивитесь.

RA6XTD
14.07.2009, 13:05
Одна особенность, если в записи есть область, но нет РДА, то РДА уже не ищется. Такое бывает после RDXC, когда в лог переносятся области из контест-лога.
А, ну кто ж знал, что есть такое исключение. :)
Вы сами просили, чтобы не затирались имеющиеся данные.
Но раз область может быть без конкретного RDA, подправлю.

Добавлено через 5 минут

А причем тут веб серев апач и какой-то денвер и Perl? Причем тут вообще linux?
А каким образом вы под Windows, ДОМА, запустите perl-программу?
Или вы думаете, что у всех свои сервера в Интернете и все будут запускать http://блаблабла.ru/myscript.pl ?
Может и есть какие-нибудь интерпретаторы типа "perl.exe mycsript.pl", но рядовой радиолюбитель, который будет пользоваться вашей программой, об этом, уверен, не в курсе.


По уму, на сервер бы небольшой скрипт, который раз в пару дней создавал txt файл с RDA районами и позывными.
Ну вот и сделайте по-уму, учитывая, что сервер чужой.


И давайте RX9TX сам напишет, он ведь не маленький. Если ему не надо ну и пофиг.
Да, не маленькой, однако он уже сам написал.
В первом сообщении "Нужна программа, которая бы читала АДИФ и для российских станций заполняла бы данные по РДА - т.е. поля STATE и CNTY. Файл с данными есть на сайте РДА."
Я не знаю как вам, но для меня фраза "нужна программа" означает одно - скачал, запустил. Без всяких лишних плясок и манипуляций. Наброски и хаотичные куски кода, алгоритмы и советы по моему скромному мнению, под эту фразу не подпадают.

R8TX
14.07.2009, 13:17
Но раз область может быть без конкретного RDA, подправлю.
OK, дайте ссылку где будет выложена программа, скажу Роману RX3RC чтобы он тоже на нее ссылку повесил на сайте RDA.

RA6XTD
14.07.2009, 13:26
OK, дайте ссылку где будет выложена программа, скажу Роману RX3RC чтобы он тоже на нее ссылку повесил на сайте RDA.
Да сырая программа. Чего ее выкладывать.
Да и вопрос с обновлением базы остается открытым.

RW3VZ
14.07.2009, 14:24
А каким образом вы под Windows, ДОМА, запустите perl-программу?

Очень просто.
Active Perl: http://www.activestate.com/activeperl/

RX4HX
14.07.2009, 14:30
Ну это надо спросить у владельцев этой базы.

На сколько я понимаю - владельцы базы RZ4AG и UA9OV - они вроде тут присутствуют. Вот и давайте спросим! :)

RA6XTD
14.07.2009, 14:38
Очень просто.
Active Perl: http://www.activestate.com/activeperl/
Т.е. эта штука стоит у каждого радиолюбителя? ;)

RA9MX
14.07.2009, 14:43
Да и вопрос с обновлением базы остается открытым
И это вопрос самый главный, ибо зачем тогда прога, если она "дергает" древнюю базу!

RN6LIQ
14.07.2009, 16:34
В таком варианте Метод рабочи, однако я плохо понимаю, зачем на таких объемах создавать базу данных. Ах да, delphi для автоматизации работ с БД и создан изначально.
По уму, на сервер бы небольшой скрипт, который раз в пару дней создавал txt файл с RDA районами и позывными.
По примочкам, а они там и не нужны.
Ради интереса можно написать 2 программы и сравнить время работы.
Вы удивитесь.
Про базу данных я с Вами согласен. При таких объемах она не нужна. Но так удобно писать RA6XTD. Ему это не напряг. Все это уже встроено в среду разработки. А это единственный человек на этой ветке, который пишет реальную программу, а все остальные ее тестируют. Напишите Вы реальный код и выложите его здесь, а мы его попробуем. Только пожалуйста не требуйте скачать 17 метров дистрибутива Perla, и инсталить ее на своем компе. Программа должна быть в виде исполняемого кода и не требовать установки дополнительных библиотек.
Про скрипт я тоже согласен. Давайте предложим хозяевам сайта этот вариант. А лучше предложить уже готовый скрипт, останется только подключить :) А качать можно будет или по FTP или также по HTTP.
По поводу сравнения не понимаю. Вы пробовали? Я уже озвучил свои эксперименты. Если запрос делать раз в секунду, то сайт не затыкается. Если Вы можете чаще, - программу в студию.
И кстати Вы писали, что выложили результаты. Не понял, где смотреть?

RN9RQ
14.07.2009, 18:04
ну кроме эктив стейта есть более удобный теперь дистрибутив под винду Strawberry Perl.
Кроме того есть несколько вариантов упаковки скрипта и интерператтора в один исполняемый файл, типа perl2exe, есть продукт от эктив стейт, есть уже в дереве perl PAR нахзывается.
В итоге для голой программы примерно полтора мегабайта экзешник + если будете подключать библиотеки.
Про эксперимент я предлагал сранвить производительность Си и Perl

RA6XTD
14.07.2009, 18:26
При таких объемах она не нужна.
Она нужна при любых объемах.
Не видел ни одного лога с текстовыми базами данных.
Поиск считанного в память файла и по базе с индексами медленнее в разы.
Даже этот пример это показал.


В итоге для голой программы примерно полтора мегабайта экзешник + если будете подключать библиотеки.
Вот и продемонстрируйте, пожалуйста, готовый продукт вида "скачал-запустил" для сравнения. Скорости в том числе.

Я не говорю, что нельзя сделать лучше, быстрее. Можно. Просто сделать и говорить, что можно сделать - это не одно и тоже. И выказывание недоумения, в частности, по поводу использования базы данных, рассказы про возможности перла, регулярных выражений и т.п. при отсутствии более быстрого, удобного и т.д. варианта ничего кроме улыбки не вызывает.

RN9RQ
14.07.2009, 18:36
RA6XTD
Посмотрите на xlog
Продукт, ну чтоже, сейчас сделаем после ужина

RN6LIQ
14.07.2009, 19:15
Поиск считанного в память файла и по базе с индексами медленнее в разы.
Даже этот пример это показал.
Не знаю, у меня летает. Даже без оптимизации. Узнаю размер файла. Резервирую размер памяти. Качаю туда файл целиком. Сишные функции со по работе со строками просто летают. Только нельзя промежуточные результаты выводить в разные окна. Тормозит жутко. Надо выводить сразу результат.

Вот и продемонстрируйте, пожалуйста, готовый продукт вида "скачал-запустил" для сравнения. Скорости в том числе.

Очень справедливо. Давно ждем.

Просто сделать и говорить, что можно сделать - это не одно и тоже.
Не в бровь, а в глаз.

Продукт, ну чтоже, сейчас сделаем после ужина
А вот это уже интересно. :)

Добавлено через 8 минут

Про эксперимент я предлагал сранвить производительность Си и Perl
Не может грамотно составленный код на Си проиграть какому либо другому коду.
Другое дело что не все могут грамотно составлять. И ошибаются часто. Поэтому и изобретаются различные языки, что бы кодер не путался и мог собрать все свои мысли и не растерять их. Для больших трудоемких процессов это большой выигрыш. Поскольку трудно держать весь проект в голове. Но для данной задачи, она не такая сложная, Си нету конкурента.

RX4HX
14.07.2009, 21:26
Не может грамотно составленный код на Си проиграть какому либо другому коду.

К сожалению нынешней молодежи, начинающей программировать, это очень сложно объяснить...


Посмотрите на xlog

Мы не хотим смотреть никакой xlog. Мы хотим увидеть Вашу программу. Одним испольняемым файлом. Без необходимости установки 250 мег Dot Net и т.п.
С удовольствием сравним ее с программой RA6XDT.

Добавлено через 1 минуту
Сейчас получил ответ от Романа RX3RC - обещал выкладывать у себя на сайте базу в текстовом формате. Собственно вот и решение проблемы!

RA6XTD
14.07.2009, 22:24
Сейчас получил ответ от Романа RX3RC - обещал выкладывать у себя на сайте базу в текстовом формате. Собственно вот и решение проблемы!
Отлично!
Тогда и онлайн-поиск не нужен.
Только надо попросить Романа при экспорте в текстовичок не размещать ненужную информацию. Просто по строкам позывной RDA, позывной RDA.
Хотя это не критично!

RN9RQ
14.07.2009, 22:37
Прошу прощенья за задержку, были гости.

В общем накидал по быстрому
кидаем в папку in файлы, забираем из папки out
Попросим RX9TX и у кого linux стоит на борту протестировать, а я сейчас со стола уберу и поищу чем запаковать для windows.

RN9RQ
14.07.2009, 22:39
Вот весь исходник по объему.

sub convert ()
{
$time=localtime();
print "start convert $file \n started in $time \n";
open(ADIFFILE, "< ./in/$file") or die "can't open adif-file";
open(NEWADIFFILE, "> ./out/$file") or die "can't create adif-file";

while($line=<ADIFFILE>)
{
if($line=~m/\<CALL\:/)
{
$b=$`;
$ser=$&;
$after=$';
$num=substr $',0,2;
$num1=substr $num,1,1;
if($num1 eq "\>"){$num=substr $num, 0,1;$call=substr $',2,$num;}
else{$call=substr $',3,$num;};
$rda="";
foreach $i (@table)
{
if($i=~m/\"$call\"/){$rda=substr $',2,5;};
};
$qt=substr $rda,0,2;
#print $call," ",$rda,"\n";
if(!($rda eq ""))
{
$string=join "",$b,$ser,$num,">",$call," ","<STATE:2>$qt <CNTY:5>$rda ",$after;
$line=$string;
}
#print NEWADIFFILE $line;
}
print NEWADIFFILE $line;
};

close ADIFFILE;

close NEWADIFFILE;
$time=localtime();
print "stop convert $file \n stoped in $time \n";
};

open(CSVFILE, "< ./table/rda.csv") or die "can't open csv-file";
@table=<CSVFILE>;
close CSVFILE;


opendir(INDIR, "./in/") or die "can't open ./in directory";

while ($file = readdir(INDIR))
{
if ($file=~m/.+\.adi/){&convert;};
};
closedir INDIR;

RX4HX
14.07.2009, 22:50
Вот весь исходник по объему.

Замечания:
1. База не индексирована - прийдется перебирать все записи - скорость будет примерно в 100 раз ниже , чем у RA6XDT.
2. Нет проверки на пустые записи STATE и CNTY в адиф-файле.
3. Нет проверки на not UA-country
В остальном - Линукса нет, проверить не могу.

RZ4AG
14.07.2009, 23:24
На сколько я понимаю - владельцы базы RZ4AG и UA9OV - они вроде тут присутствуют. Вот и давайте спросим! :)
владелец базы - rx3rc. А наш - сервер на котором на бесплатной основе живет и rdaward.org и база. И если запросы к базе рда положат наш сервер, то я думаю понятно что произойдет далее.

ps какой отвратительный GPRS у пчелайна в Лазаревском... :(

RN9RQ
15.07.2009, 00:07
Тьфу ты, с екзешником провозился в первый раз больше чем с исходником ))
В общем протестите, должно работать.
по вопросам Да, нет базы у меня и ничего не индексируется, да этот вариант медленнее, но скорость работы достаточна.
Нет проверки вижу, щас подправлю.
по третьему немного не понял, если не находится данных о RDA оно вообще никуда не пишется ничего.

В общем PAR умеет только для своей платформы собирать, винды нету у меня, поэтому собрано при помощи perl2exe/
Протестируйте pls работает или нет.

RN9RQ
15.07.2009, 11:34
Прошу прощенья, в той программе косячек, не вычистил в одном месте
Вот исправленный вариант.
Заодно и немного оптимизированный.
Основная потеря времени - на просмотре таблицы регулярными выражениями, которые еще и пересобирались, поскольку в них переменные стояли. Теперь используется хешь массив, отличие которого от обычного массива в том, что данным присвоены не порядковые номера, а собственные имена. Такой тип данных и в паскале кстати есть насколько помню.
Теперь работает на несколько десятичных порядков быстрее, уже можно сравнивать скорости.
И господа, отпишитесь уже, работает сборка под винду или нет.
Меньше сотни строк вся программа.

В архиве и сборка под винду и сам .pl файл под никсы и для тех у кого установлен perl

#!/usr/bin/perl -w
#copyright Sergeyev Roman, RN9RQ ex RA9QCE, 2009
#licence: GPL v3 or later, see more on gnu.org

# Скрипт вписывает данные в adif формат о регионе и RDA районе.
# Кидаем в папку IN файл с названием adif.adi запускаем скрипт и забираем готовый файл из папки OUT
# в папке table лежит набор данных с сайта http://rdaward.org/ в формате csv
sub convert ()
{
$time=localtime();
print "start convert $file \n started in $time \n";
open(ADIFFILE, "< ./in/$file") or die "can't open adif-file";
open(NEWADIFFILE, "> ./out/$file") or die "can't create adif-file";

while($line=<ADIFFILE>)
{
if($line=~m/\<CALL\:/o)
{
$b=$`;
$ser=$&;
$after=$';
$num=substr $',0,2;
$num1=substr $num,1,1;
if($num1 eq "\>"){$num=substr $num, 0,1;$call=substr $',2,$num;}
else{$call=substr $',3,$num;};
$rda="";
if((($call=~m/^R.+/o)||($call=~m/^U[A-Ia-i].+/o))&&(!($after=~m/\<CNTY\:5/o)))
{
if(exists($hash{$call}))
{
$rda=$hash{$call};
$qt=substr $rda,0,2;
$after=~s/^$num\>$call//;
$string=join "",$b,$ser,$num,">",$call," ","<STATE:2>$qt <CNTY:5>$rda",$after;
$line=$string;
};
};

};
print NEWADIFFILE $line;
};
close ADIFFILE;
close NEWADIFFILE;
$time=localtime();
print "stop convert $file \n stoped in $time \n";
};
$time=localtime();
print "program start in $time \n";

open(CSVFILE, "< ./table/rda.csv") or die "can't open csv-file";
@table=<CSVFILE>;
close CSVFILE;
%hash = ();
foreach $i (@table)
{
$i=~s/"//g;
if($i=~m/\,/)
{
$hcall=$`;
$hrda=substr $',0,5;
$hash{$hcall} = $hrda;
};
};
opendir(INDIR, "./in/") or die "can't open ./in directory";
while ($file = readdir(INDIR))
{
if ($file=~m/.+\.adi/){&convert;};
};
closedir INDIR;

R8TX
15.07.2009, 11:51
На выходе файла нет.

n2wz@n2wz-laptop:~/temp/adif-rda$ ./start.pl
program start in Wed Jul 15 13:47:57 2009

RN9RQ
15.07.2009, 11:54
так
расширение у файла .adi ?
маленькими буквами?

R8TX
15.07.2009, 12:26
Теперь есть

n2wz@n2wz-laptop:~$ cd ~/temp/adif-rda
n2wz@n2wz-laptop:~/temp/adif-rda$ ./start.pl
program start in Wed Jul 15 14:25:14 2009
start convert full.adi
started in Wed Jul 15 14:25:14 2009
stop convert full.adi
stoped in Wed Jul 15 14:25:15 2009
n2wz@n2wz-laptop:~/temp/adif-rda$

Вроде работает. За секунду управился :) С почином Вас, Роман :)

<BAND:3>80M <CALL:5>RA3QN <STATE:2>VR <CNTY:5>VR-32 <CONT:2>EU <CONTEST_ID:6>CQWWCW <CQZ:2>16 <DXCC:2>54 <FREQ:8>3.536300 <ITUZ:2>29 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20071124 <RST_RCVD:3>599 <RST_SENT:3>599 <STX:3>174 <TIME_ON:6>041053 <TIME_OFF:6>041053 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>64067 <FREQ_RX:7>3.53630 <EOR>

<BAND:3>80M <CALL:6>UA9CLB <STATE:2>SV <CNTY:5>SV-66 <CONT:2>AS <CONTEST_ID:6>CQWWCW <CQZ:2>17 <DXCC:2>15 <FREQ:8>3.536300 <ITUZ:2>30 <MODE:2>CW <OPERATOR:5>RX9TX <QSO_DATE:8:D>20071124 <RST_RCVD:3>599 <RST_SENT:3>599 <STX:3>175 <TIME_ON:6>041109 <TIME_OFF:6>041109 <LOTW_QSL_SENT:1>Y <APP_LOGGER32_QSO_NUMBER:5>64068 <FREQ_RX:7>3.53630 <EOR>

RN9RQ
15.07.2009, 12:56
Ага значит работает.
А в чем проблема была?
Тут ребята подсказали под винду не работало.
Сейчас вроде работает.
Исходник не изменился.
кстати как по скорости в сравнении с программой на базе данных?

R8TX
15.07.2009, 13:00
А в чем проблема была?
Adif был заглавными буквами.


кстати как по скорости в сравнении с программой на базе данных?
Не смогу сказать точно, потому что RA6XTD запускаю на стареньком Селероне для радио 1 ггц 256 рам, а сприпт на ноуте core 2 duo 2.2 ггц 2 гиг рам. На ноуте 1 сек - тоже точно сказать нальзя, может там 5 миллисекунд, а может 1999 мс :), RA6XTD 20 сек.

RN9RQ
15.07.2009, 13:02
Последняя сборка под windows работает. Только что проверили.
Можете на одном компе сравнить.

Добавлено через 5 минут
В принципе я могу поправить, чтобы в никсах он и с большими буквами в расширении понимал, под виндой должно быть однохренственно, надо?

R8TX
15.07.2009, 13:18
Последняя сборка под windows работает. Только что проверили.
Можете на одном компе сравнить.
Я на речку поехал :) сравню вечером.


В принципе я могу поправить, чтобы в никсах он и с большими буквами в расширении понимал, под виндой должно быть однохренственно, надо?
Делайте конечно, причем делайте по логике, которая здесь обсасывалась, на сайте у Романа выложим 2 решения, под венду и линь.
1. Дробные позывные не проверяем
2. если в АДИФ данные по РДА уже есть, их не затираем.
3. Если в АДИФ область уже есть, а РДА нет - добавляем РДА.
4. Базу обновляем автоматически с сайта РДА при старте скрипта.
5. SH заменяем на YA.
6. Если встречаем неправильную запись вида TM-0, идем до первой правильной вида TM-01, и импортируем именно ее.

Может попросить Романа выкладывать базу в .csv?

RA6XTD
15.07.2009, 14:25
Последняя сборка под windows работает. Только что проверили.
Можете на одном компе сравнить.
Работает.
Вот это уже другой коленкор. :)


под виндой должно быть однохренственно,
Неа. .ADI не понимает. Только .adi

Работает быстро.
В несколько раз быстрее, чем у меня без базы данных.
Но медленнее, чем с базой.
Но я не думаю, что разница критична.
У меня на компе меньше секунды, ваша - на глаз секунды 3.

Так. Давайте определяться с форматом txt там будет или csv (разницы принципиальной нет) и будем просить регулярно выкладывать базу в интернете.
Формат, повторю, не важен, однако лишние столбцы, имхо, не нужны.
Зачем вот 3-й и 4-й столбец?
"4K3/UA1ZFQ","NO-01","RR-03-05","n/a"
"4K3/UA9XBE","NO-01","RR-06-01","n/a"
или
4K4POL CK-08 RR-11-02 n/a
4K4POL/A CK-09 10.11.1992 n/a

Лишний объем.

Как только файл появится на сайте и дадут ссылку на него, я добавлю обновление базы данных и уберу лишние способы поиска (в том числе онлайн), оставив только самый быстрый.

RX4HX
15.07.2009, 16:43
Так. Давайте определяться с форматом txt там будет или csv

В идеале самое простое конечно просто 2 столбца... и пробел - разделение!

RN9RQ
15.07.2009, 18:17
какая разница какой текстовый формат, развернуть его дело пары строк.
В каком дадут формате в том и заюзаем, по мне CSV идеально.
ПО скорости посомтрите вывод программы, там все в секундах выдается.

R8TX
15.07.2009, 18:49
ПО скорости посомтрите вывод программы, там все в секундах выдается.
Со скоростью все хорошо, не в этом вопрос. Делайте функциональность.

RN9RQ
15.07.2009, 19:29
Да я не против функциональности.
1 Почему не надо проверять дробные позывные я немного не понял.
2 сделано изначально
3 сделаю
4 пока непонятно как обновлять надо подождать что решат его хозяева
5 Вообще не проблема
6 В базе csv такого нет.

R8TX
15.07.2009, 19:32
1 Почему не надо проверять дробные позывные я немного не понял.
Потому что кто работает из полей работают из разных районов, а не только из какого-то одного. Практически 100% вероятность что первый встретившийся для дробного позывного номер будет неправильным. Лучше вообще ничего не писать.



6 В базе csv такого нет.
Зато скорее всего будет в файле, который сделает Роман RX3RC. Лучше подстраховаться.

UA1CEC
15.07.2009, 19:58
Роман,а для работы Вашей проги нужен доп.софт?
У меня в ХР выскакивает DOS окно и через секунд 5 все пропадает.

RN9RQ
15.07.2009, 20:43
UA1CEC
нет, ничего не надо, это нормально, в папку in скидываем интересующие adif и забираем после работы из папки out.
По поводу базы. давайте дождемся её появления и там уже все сделаем.

Добавлено через 34 секунды
Меня все-таки интересует сравнение скоростей работы софта хоть в каких-то попугаях..

UA1CEC
15.07.2009, 21:26
Роман,время обработки у меня один в один,но!!!
Что у Вас,что у RA6XTD - в моем адифе рда не вставляются???
Экспорт из mixw,а в mixw из aatest и ur5eqf.
В чем,блин,глюк?
Не могу понять в чем косяк...

RX4HX
15.07.2009, 21:31
Ага значит работает.

Роман, теперь по делу. Вот Вы очень рекламируете Perl. Для простоты берем:
1. Обычного радиолюбителя.
2. Вашу программу и RA6XTD.
3. Запускаем: все понятно у RA6XTD и черный текстовый экран у Вас.
Вопрос знатокам: какую программу выберет 99,9% радиолюбителей? (Подсказка - 0,1% , который выберет Вашу программу, будет один RX9TX - рьяный привеженец Линукса :) )

Добавлено через 8 минут

Не могу понять в чем косяк...

И мы не можем!
Адиф в студию!

RN9RQ
15.07.2009, 21:58
посмотрите adif с проставленными рда вручную и покажите из него строку. Уверен, что просто ипользуются другие поля.
Не забывайте в моей программе еще 2 или 3 секунды задержка из-за perl2exe - коммерческое предложение выпадает.
Смотрите время работы по выводимому скриптом времени

R8TX
15.07.2009, 22:15
Роман, теперь по делу. Вот Вы очень рекламируете Perl. Для простоты берем:
1. Обычного радиолюбителя.
2. Вашу программу и RA6XTD.
3. Запускаем: все понятно у RA6XTD и черный текстовый экран у Вас.
Вопрос знатокам: какую программу выберет 99,9% радиолюбителей? (Подсказка - 0,1% , который выберет Вашу программу, будет один RX9TX - рьяный привеженец Линукса )Ежу понятно что "простой радиолюбитель" захочет программу с интерфейсом, в Линуксе они тоже есть :) Если бы Роман сделал свою программу на пару дней раньше, "простому радиолюбителю" выбирать было бы не из чего :) Но "100 строк кода" конечно впечатляет, и скорость работы тоже, при том что у Романа нет оптимизации поиска только по R, UA-UI. Moй лог 70 тыс ЩСО обработался за секунду.

Добавлено через 1 минуту

Меня все-таки интересует сравнение скоростей работы софта хоть в каких-то попугаях..
Завтра сделаю.

RX4HX
15.07.2009, 22:18
Если бы

"Если бы, да ка бы..." - далее думаю, Вы знаете :)
Простой радиолюбитель попросил бы написать другую - и тот же RA6XTD это бы сделал. А имея Core Duo 2, и работать в текстовм режиме - маразм.

RN9RQ
15.07.2009, 22:34
Маразм приспосабливать всякие свистелки-перделки, ко всему,в том числе и к логам.
Вспомните первые ветки, как пытались меня гнобить дескать не сделал а болтаешь.
Теперь меня будут пытаться гнобить по поводу интерфейса, как пить дать.
Думаете мне его на TK сложно нарисовать?
Вопрос кому он нужен.

Заметте все орали, что я дуpак и без БД оно будет работать в час по чайной ложке, что перл это вообще медленное поделие которое годится только для чайников (видимо самим не удалось осилить даже TCL)
Что Perl никогда не сравнится по скорости с паскалем и Си.
Теперь похоже нашелся новый повод.

R8TX
15.07.2009, 23:00
Теперь похоже нашелся новый повод.
Kто-то его усердно искал.

UA1CEC
16.07.2009, 00:17
Роман, теперь по делу. Вот Вы очень рекламируете Perl. Для простоты берем:
1. Обычного радиолюбителя.
2. Вашу программу и RA6XTD.
3. Запускаем: все понятно у RA6XTD и черный текстовый экран у Вас.
Вопрос знатокам: какую программу выберет 99,9% радиолюбителей? (Подсказка - 0,1% , который выберет Вашу программу, будет один RX9TX - рьяный привеженец Линукса :) )

Добавлено через 8 минут


И мы не можем!
Адиф в студию!
Засылаю адиф...

UA1CEC
16.07.2009, 00:22
Это исходник.
Pse,скажите где я оказался так туп.

RA6XTD
16.07.2009, 07:29
и скорость работы тоже, при том что у Романа нет оптимизации поиска только по R, UA-UI.
Как это нет?
if((($call=~m/^R.+/o)||($call=~m/^U[A-Ia-i].+/o))&&(!($after=~m/\<CNTY\:5/o))) {


Это исходник.
Pse,скажите где я оказался так туп.
Первое, что бросилось в глаза - у вас поля не отделены пробелами.
При этом что моя, что Романа RDA вставляют 1:1
<CALL:6>UA3QDX <STATE:2>VR <CNTY:5>VR-02<QSO_DATE:8>20040608<TIME_ON:6>192405<TIME_OFF:6>192405<FREQ:7>7.04000<MODE:5>PSK31<SUBMODE:4>BPSK<RST_RCVD:3>599<RST_SENT:3>599<STATE:2>VR<QSL_SENT:1>N<QSL_RCVD:1>N<EOR>
<CALL:6>RA4AIS <STATE:2>VG <CNTY:5>VG-02<QSO_DATE:8>20040608<TIME_ON:6>193232<TIME_OFF:6>193232<FREQ:7>7.04000<MODE:5>PSK31<SUBMODE:4>BPSK<RST_RCVD:3>599<RST_SENT:3>599<STATE:2>VG<QSL_SENT:1>N<QSL_RCVD:1>N<EOR>

Может из-за того, что все идет без пробелов, кроме вставляемых районов RDA, а программа, читающая adi их не понимает? Хотя такого не должно быть.
Или может ваша программа, куда вы adi импортируете просто не понимает эти новые поля?

RX4HX
16.07.2009, 08:35
Pse,скажите где я оказался так туп.

Это ошибка в программе RA6XDT.
Вот ошибка в Адифе после прогона его программой:
<CALL:6>RA3AET<<STATE:2>MA <CNTY:5>MA-08 QSO_DATE:8>20040609
Из-за того, что нет разделения пробелами, поле STATE вставилось не верно!

Добавлено через 2 минуты

Может из-за того, что все идет без пробелов

Именно из-за этого! Однако пробелы стандартом ADIF не предусмотрены! Это просто чтоб легче было его понимать человеку.

RA6XTD
16.07.2009, 08:39
<CALL:6>RA3AET<<STATE:2>MA <CNTY:5>MA-08 QSO_DATE:8>20040609
Странно.
У меня так:
<CALL:6>RA3AET <STATE:2>MA <CNTY:5>MA-08<QSO_DATE:8>20040609<TIME_ON:6>151518<TIME_OFF:6>151518<FREQ:8>14.07100<MODE:5>PSK31<SUBMODE:4>BPSK<RST_RCVD:3>599<RST_SENT:3>599<QTH:5>DL4XT<QSL_SENT:1>N<QSL_RCVD:1>N<EOR>

Ну не важно. Сейчас сделаю учет того, что пробелов может и не быть.

RX4HX
16.07.2009, 08:40
Теперь меня будут пытаться гнобить по поводу интерфейса

Вообще то я думал, что Вы программу пишите, чтоб ею люди могли пользоваться... А с интерфейсом оно как то приятнее.

Добавлено через 55 секунд

Странно.

У меня во всех местах, где вставила программа так...

R8TX
16.07.2009, 09:46
Меня все-таки интересует сравнение скоростей работы софта хоть в каких-то попугаях..
На моем вендовом селероне для радио.

Лог 73540 ЩСО,
скрипт - 4 секунды на обработку лога по выводу программы в окне, но требуется 3-4 секунды на открытие окна.
XTD - 12 секунд по сообщению по окончании операции, из них около 10 секунд - обработка лога и 2 секунды запись файла. Окно открыто заранее.

RA6XTD
16.07.2009, 13:50
Так. 8-й билд.
Исправлена ошибка из-за отсутствия пробелов в ADI.
Если STATE есть, но нет CNTY, то RDA добавляется.

Убраны все лишние способы поиска.
Добавлена возможность обновлять базу с сервера.
Файл пока лежит тут http://www.r6x.ru/RDA.txt
В нем по сравнению с встроенной базой две новые записи.
Просто для наглядности как это будет выглядеть когда будет окончательно готово всё после решения вопроса с размещением базы на сервере dxsoft.

Пока вопрос будет решаться - займусь оптимизацией.

RZ4AG
16.07.2009, 13:57
Это ошибка в программе RA6XDT.
Вот ошибка в Адифе после прогона его программой:
<CALL:6>RA3AET<<STATE:2>MA <CNTY:5>MA-08 QSO_DATE:8>20040609
Из-за того, что нет разделения пробелами, поле STATE вставилось не верно!

Добавлено через 2 минуты


Именно из-за этого! Однако пробелы стандартом ADIF не предусмотрены! Это просто чтоб легче было его понимать человеку.
не правда ваша :) Пробелы в адифе между тегами должны просто игнорироваться. Как и переводы строки.

RX4HX
16.07.2009, 16:04
Пробелы в адифе между тегами должны просто игнорироваться. Как и переводы строки.

Саш я уже это написал )))

P.S. Завидую вам по белому - мы на юг только в сентябре! Удачи тебе и твоей семье отдохнуть!

RN9RQ
16.07.2009, 18:10
На моем вендовом селероне для радио.

Лог 73540 ЩСО,
скрипт - 4 секунды на обработку лога по выводу программы в окне, но требуется 3-4 секунды на открытие окна.
XTD - 12 секунд по сообщению по окончании операции, из них около 10 секунд - обработка лога и 2 секунды запись файла. Окно открыто заранее.

2 секунды открытие и 2 секунды закрытие - это из-за фриварной версии perl2exe PAR:Packer компилировать под виндой лень.
Там три времени выводится: первое - начало работы скрипта, второе - начало обработки лога, третье - конец обработки лога.
Если файлов больше одного, то четвертое начало обработки второго лога, пятое - конец обработки второго лога и т.д.
Между первым и вторым временем происходит обработка csv файла и извлечение из него информации.
Заметте 4 секунды без всяких баз данных, как туд говорили "на медленном интерпетируемом" Perl.

Добавлено через 4 минуты
UA1CEC
В моей программе Ваш файл корректно обрабатывается.
Может быть, вы в интересующем Вас логе вобьете наобум пару QSO с вписанными rda, затем экспортируете и выложите результат?
Я почти уверен, что проблема просто в ином названии необходимых полей.

rttyman
21.07.2009, 13:15
Программа ra6xtd не работает в Win98, нужно бы исправить, такие простые утилиты должны работать от 95 (98) и выше!

И пожеление авторам - сделайте так же и подстановку сокращений областей для республик СНГ, где позывные систематизированы. Списки соответствий префиксов или суфиксов условным сокращениям областей найти не сложно.

RN9RQ
21.07.2009, 14:58
Дайте ссылку - сделаю.
Хотя, если не нравится отсутствие графических рюшечек, можно и не беспокоится

rttyman
21.07.2009, 15:52
Здесь база по казахскому "RDA": http://award.cqun.kz/index.php?option=com_content&task=view&id=46&Itemid=57
Здесь описывается систематизация позывных по областям Казахстана: http://award.cqun.kz/index.php?option=com_content&task=view&id=185&Itemid=64

Прикрепляю файлы соответствия областей по России и Украине.

Надеюсь, товарищи из остальных республик нас читают и не поленятся дать информацию о своем соответствии позывных и областей.

RA6XTD
21.07.2009, 16:40
Программа ra6xtd не работает в Win98, нужно бы исправить, такие простые утилиты должны работать от 95 (98) и выше!
Обновите дрова MDAC и будет работать.

Кроме того, новая версия (в аттаче) не будет использовать БД.
Я провел кое-какие оптимизации - и без нее все пашет с приемлемой скоростью.

Жду решения вопроса с выкладываемым файлом для обновления базы и тогда уже можно будет доделать.

rttyman
21.07.2009, 17:15
Не запустилась и последняя версия, картинку с ошибкой смотрите в приложении.

И еще - в базе rda.txt есть как и дублеж информации, так и одинаковые позывные с разными районами, чем-то бы прогнать и удалить дубли...

RN9RQ
21.07.2009, 17:20
Обновите дрова MDAC и будет работать.

Кроме того, новая версия (в аттаче) не будет использовать БД.
Я провел кое-какие оптимизации - и без нее все пашет с приемлемой скоростью.

Жду решения вопроса с выкладываемым файлом для обновления базы и тогда уже можно будет доделать.

ГГГ
Кто-то говорил, что база обязательна

Добавлено через 22 минуты
rttyman
как на Украине сложно с областями...
Ладно, попробуем сделать.
Чтобы не проверять двухбуквенные обозначения украинских областей не совпадают с российскими?

RX4HX
21.07.2009, 18:15
Дайте ссылку - сделаю.
Хотя, если не нравится отсутствие графических рюшечек, можно и не беспокоится

Ром, я тебе уже писал - либо делай, либо не рисуйся! Не красиво это!

Добавлено через 1 минуту

Жду решения вопроса с выкладываемым файлом для обновления базы и тогда уже можно будет доделать.

Роман уже выложил, но выложил в архив вместе с экселевским файлом... Надо попросить чтоб отдельно выкладывал!

RN9RQ
21.07.2009, 19:21
И главное в общепринятом архиваторе, в том же zip а не в раре.

RA6XTD
21.07.2009, 19:46
Роман уже выложил, но выложил в архив вместе с экселевским файлом... Надо попросить чтоб отдельно выкладывал!
Я с ним списался. Определяемся сейчас кто и в каком виде будет выкладывать базу.

Вы посмотрите, пожалуйста, 9-й билд по скорости изменился как-то?


Не запустилась и последняя версия, картинку с ошибкой смотрите в приложении.
Ага. Все. Теперь понял в чем дело.
Спасибо за скрин-шот.


И еще - в базе rda.txt есть как и дублеж информации, так и одинаковые позывные с разными районами, чем-то бы прогнать и удалить дубли...
Не переживайте. Это учтено уже. При обновлении дубляжи не будут заноситься. А базу при релизе я почищу. И RDA будет браться самый первый занесенный в базе. Да, если на выезде человек подтвердил район раньше, чем домашний (скажем во время RDA-контеста), то будет ошибка. Но это никак не исправить. База RDA пополняется путем простого добавления данных. Ее никто не проверяет на достоверность и т.д. Никто не корректирует. Это, думаю, физически не возможно.

Скажем г. Прохладный там KB-05 (RA6XB, RA6XE), а не KB-13.
Т.е. ошибок много и без дубляжей, подтверждения не домашнего QTH ранее домашнего. Но это лучше, чем ничего.

rttyman
21.07.2009, 20:12
Проблему с базой можно решить радикально - менеджер базы должен заносить и периоды (дата и время) работы в определенных районах. Иначе через несколько лет толку от любых попыток автоматизации, которые рассматриваются в этой теме, не будет!

Буду ожидать новую версию, работающую в W98, спасибо, 73!

RA6XTD
22.07.2009, 16:42
Так. Билд 0.99
Еще более оптимизировал.
Все просто летает. Теперь должно быть быстрее, чем на perl (не беря во внимание двухсекундную задержку из-за триала - только фактическое время обработки).
На моем компе файл в 200к QSO обрабатывает за 0.7 сек.

Прошу проверить скорость, а также правильность обработки, т.к. в связи с проведенными оптимизациями скорости могло что-то нарушиться.

Второй аттач должен работать под Win98.
Проверить сам не могу - не на чем.

R8TX
22.07.2009, 16:57
Теперь сделал бы кто-нибудь то же самое с IOTA :)

UA3LIZ
22.07.2009, 17:00
13000 за 0,379сек. Р3 - 1,2 - 1Гб RAM. Правильность не проверял.

RA6XTD
22.07.2009, 18:05
Теперь сделал бы кто-нибудь то же самое с IOTA
А что там с IOTA?

UA1CEC
22.07.2009, 18:31
2 mb за 0.689 P4 5200+ 1пи ram
Правильность тоже не проверял.

R8TX
22.07.2009, 19:35
А что там с IOTA?
Нужно заполнить адиф используя данные на сайте ИОТА. У них есть поиск по позывному на сайте, справа на странице есть Search, введите там RX9TX/6, увидите там споты по дате. Задача сложнее чем с РДА, но и данные там лучше организованы, можно сверять по дате в АДИФ и дате указанной на сайте, можно добиться 100% достоверности для любых дробных позывных.

Есть и готовые API http://www.rsgbiota.org/api/index.php , правда пока в тестовом режиме.

rttyman
22.07.2009, 20:34
Второй аттач должен работать под Win98.

Спасибо, заработало и 9000QSO за 0.7сек на 2400МГц процессоре. Новые версии и делайте на основе этого, пусть будет универсально!

Заметил, что оно ставит лишний пробел после занесения областей в адиф, например:
<STATE:2>KE <CNTY:5>KE-03<QSO_DATE:8>

А после района или любых других полей нет. Я понимаю, что вроде бы не влияет и мой MIXW2 съел обратно без последствий такой adif, но тем не менее. P.S. в оригинале MIXW делает ADIF сплошной строковой записью, "тэги" пробелами не отделяются.

R8TX
22.07.2009, 20:57
С пробелами проще читать файл глазами, лучше и после РДА поставить пробел.

RW3DY
22.07.2009, 21:50
Теперь сделал бы кто-нибудь то же самое с IOTA
Асгат, постановщиком задач не работал ? :-)

RN9RQ
22.07.2009, 21:53
RX9TX
Такими темпами получим в итоге логгер )

R8TX
22.07.2009, 22:05
Асгат, постановщиком задач не работал ? :-)
:)

RX4HX
23.07.2009, 08:34
0,93 сек на 8500 тыс QSO на Core Duo.
На мой взгляд очень быстро!

Добавлено через 5 минут
На счет базы: у Романа более правильная база - там даты есть - для дробных позывных в случае совпадения временного интервала можно точно РДА определять! Так что может все же еще и дату оставить и проверять на временной интервал?

R9SA
23.07.2009, 13:53
Проверил V.099.
Не импортировалось в Logger32 132 QSO из примерно 53000 с ошибкой "Error in the STATE field:". Из них большая часть (117) 0Q - старая аббревиатура Якутии - SH.
13 QSO из-за ошибки в базе RA3DEQ=M0-50 и RW9SZ=0B-05 - 0 вместо O.
По одному QSO UE60SWA и R450WA.