-
13.07.2009, 21:33 #136
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
Последний раз редактировалось R8TX; 13.07.2009 в 21:38. Причина: Добавлено сообщение
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
13.07.2009, 22:15 #137
- Регистрация
- 12.12.2006
- Адрес
- Ростов-на-Дону
- Возраст
- 56
- Сообщений
- 354
- Поблагодарили
- 44
- Поблагодарил
- 46
Все, сервер висит Согласованная атака радиолюбителей. А люди скажут, мало того что они в эфире баламутят радиоволны, так еще и WEB сервера вешают
-
13.07.2009, 22:17 #138
- Регистрация
- 18.09.2007
- Адрес
- Нальчик, Кабардино-Балкария
- Возраст
- 43
- Сообщений
- 1,223
- Поблагодарили
- 209
- Поблагодарил
- 112
Последний раз редактировалось RA6XTD; 13.07.2009 в 22:18. Причина: Добавлено сообщение
-
13.07.2009, 22:46 #139
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
13.07.2009, 23:02 #140
- Регистрация
- 25.08.2006
- Адрес
- Шадринск, Курганская обл., Россия
- Возраст
- 36
- Сообщений
- 1,866
- Поблагодарили
- 175
- Поблагодарил
- 278
Как это можно сделать в 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
Так по моему мнению примерно должна выглядеть искомая автором программа.
Если он или кто еще захочет - можно поупражнятся, если что-то непонятно бьудет - объясню.Для человека с молотком любая проблема кажется гвоздем.
Слава богу, теперь уже БЫВШИЙ член СРР, 73!
-
14.07.2009, 01:53 #141
- Регистрация
- 12.12.2006
- Адрес
- Ростов-на-Дону
- Возраст
- 56
- Сообщений
- 354
- Поблагодарили
- 44
- Поблагодарил
- 46
Все таки придется отказаться Только что закончил тестирование этого варианта. Время одного запроса (у меня на 128 Kbit/sec) где то ~300 милисекунд. После где то 20 запроса мой IP попадает в черный список и соединения больше не происходит. Наверное на какое то время. Да и метод запроса к WEB узлу очень медленный. Для каждого позывного надо каждый раз организовывать ТСП соединение. Как только сервер ответил на запрос, он соединение разрывает. Для следующего позывного надо делать открытие следующего ТСП.
Подвожу итог:
Сверку надо делать только с локальной базой.
Если в локальной базе нет такого позывного, надо "откладывать его в сторону".
Другой какой то независимый процесс, который постоянно, но ненавязчиво, проверяет, не появились ли позывные у которых нет соответствия РДА в локальной базе. Если есть, то с небольшим темпом, потихоньку запрашивать у сервера и постепенно обновлять локальную базу. Или вернее сказать уравнивать локальную базу с внешней на сервере.
Добавлено через 8 минут
Начните изучать углубленно еще что либо из языков программирования. Perl все равно язык С не переплюнет по эффективности и быстродействию кода. Все высокоуровневые процедуры являются лишь обертками для функций написанных на С и Ассемблере. А интерпретаторы годятся только для обучения, и автоматизации несложных и некритичных во времени процессов. Без обид ...Последний раз редактировалось RN6LIQ; 14.07.2009 в 02:01. Причина: Добавлено сообщение
-
14.07.2009, 02:34 #142
- Регистрация
- 25.08.2006
- Адрес
- Шадринск, Курганская обл., Россия
- Возраст
- 36
- Сообщений
- 1,866
- Поблагодарили
- 175
- Поблагодарил
- 278
kolotusha
Я могу и на Си, могу на асме, правда под msp430, avr , немного на уровне лаб 51 и наш 580й,
Вот только на перле намного быстрее пишется и в большинстве задач он по скорости не уступит Си при грамотном коде, поскольку Perl не интерпретатор а именно компилятор, сначала вся программа компилируется в байткод, а затем уже из памяти и выполняется.
То, что я написал несколько строк на Perl на Си как бы на несколько страниц не развернулось, если не применять внешние либы вроде регекспов.
Добавлено через 2 минуты
З.Ы. Усиленно мучаю себя haskell, но вам от этого легче точно не станет hi hi
Добавлено через 7 минут
перечитал еще раз...
Мда, не сочтите оскорблением, но все-таки попрошу вас полистать историю Perl и как аббревиатура вообще расшифровывается.
Он изначально и был создан для автоматизации обработки текстовых данных по сети, когда утилиты awk и sed, написанные на C оказались не эффективны.Последний раз редактировалось RN9RQ; 14.07.2009 в 02:41. Причина: Добавлено сообщение
Для человека с молотком любая проблема кажется гвоздем.
Слава богу, теперь уже БЫВШИЙ член СРР, 73!
-
14.07.2009, 05:47 #143
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
Заполнил свой полный лог, 74 тыс.ЩСО, около 20 секунд, сейчас файл импортируется в логгер, пока логгер нашел 6 ошибок.
Я напишу UA9OV по поводу блокировки по IP, посмотрим что он скажет. В крайнем случае можно сделать чтобы у Вас на сайте база mdb обновлялась бы сама, а у пользователя при запуске программа смотрела бы Ваш сайт на предмет свежей мдб и предлагала бы ее обновить в автоматическом режиме. Но вариант с поиском на сайте dxsoft Вы пока совсем не отвергайте.73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 06:40 #144
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
Импортировалось, 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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>Последний раз редактировалось R8TX; 14.07.2009 в 06:45.
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 06:43 #145
- Регистрация
- 18.09.2007
- Адрес
- Нальчик, Кабардино-Балкария
- Возраст
- 43
- Сообщений
- 1,223
- Поблагодарили
- 209
- Поблагодарил
- 112
Вы забыли про прикладную сторону вопроса.
Вот скажите. Кто из присутствующих тут на форуме запустит вашу perl-программу?
Причем даже не программу, а наброски ее частей.
Все сидят на линуксе, у всех стоит апач или Denwer?
Или вы думаете RX9TX сможет сам написать
"Отправляем запрос на веб сервер с этим позывным и обрабатываем ответ:
Сразу вычищаем нафиг все теги s/\<.*\>//;"
Здесь не программистский форум где страждущие просят помочь советом, алгоритмом, где действительно решения на блюдечке не приветствуются. Человек попросил ему помочь. Ему не нужны ваши советы и рекомендации. Я не думаю, что RX9TX программист. Ему нужна конечная, рабочая, конкретная программа. Тема так и называется. Поэтому простите, но ваш пост http://forum.qrz.ru/post285480-140.html не несет в себе никакой практической пользы для тех, кому нужно конкретное решение. И вы можете неискушенным людям сколько угодно говорить о достоинствах того или иного языка, сколько угодно говорить, что для вас на ассемблере наваять подобное - пустяки (только вот времени нет) - но пока конечный пользователь не сможет пощупать результаты вашего труда - грош цена вашим словам.
Вот вопрос - получится ли не разрывать соединение и организовать обмен типа чата.
Если можно на мыло скиньте строки с ошибками.
Т.е. оригинальную строку и что сделала программа.
А каким образом? С чем сравнить? Ведь там просто обычная форма с единственным полем (позывной), php-программка потом отрабатывает и возвращает html-ку с результатами. Т.е. там нет доступа к полной базе, с которой можно было сравнить имеющуюся. Единственный источник, который можно скачать - это сайт rda. Тот самый xls файл. Но вы его забраковали.
Это не выход. Я к нему обратился с извинениями и советом как выйти из данной ситуации. А там видно будет.
Добавлено через 9 минут
Если можно - там где ошибки не относящиеся к <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
Тут как подправить если мемориальные станции и номер района не соответствует номеру области?
OK. Дроби киттык.
Не может. Но там ошибки нет программной.
Там идет в базе так. Вот, например, UA9OS
UA9OS NS-0 5,2003 +
UA9OS NS-07 5,2003 +
UA9OS NS-03 HOME +
Ну случаи, подобные NS-0 подправлю.
Но дальше он подтвердил HOME позже, чем иной QTH (ID 13776 и 13775).
Как быть с этим? Надписи HOME у меня вот нет. Т.е. это тоже не критерий поиска.
Алексей уже вопрос этот поднимал. Что делать, если записей несколько.Последний раз редактировалось RA6XTD; 14.07.2009 в 07:00. Причина: Добавлено сообщение
-
14.07.2009, 06:57 #146
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
Ну значит кроме запросов с сайта - единственный выход - вручную компилить mdb файл
Кстати, в форме на сайте есть даты работы той или иной станции. В АДДИФе тоже есть дата, может можно сделать сравнение дат и вытаскивать именно нужный РДА по дате?
Добавлено через 45 секунд
Файл в предыдущем письме, кроме ошибок SH-YA.Последний раз редактировалось R8TX; 14.07.2009 в 06:57. Причина: Добавлено сообщение
73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
-
14.07.2009, 07:12 #147
- Регистрация
- 16.07.2008
- Адрес
- Volzhsky
- Возраст
- 68
- Сообщений
- 1,008
- Поблагодарили
- 113
- Поблагодарил
- 127
Пятой версией проверил адиф - все позывные распознал, но только номеров нет, только буквенное сочетание, это так и должно или я что то не то сделал?
Aнатолий. RCWC#17.Жизнь так коротка, чтобы работать QROOO!!!
-
14.07.2009, 07:13 #148
- Регистрация
- 12.12.2006
- Адрес
- Ростов-на-Дону
- Возраст
- 56
- Сообщений
- 354
- Поблагодарили
- 44
- Поблагодарил
- 46
В данном случае никакая припарка не поможет. Для данной задачи сетевой вариант не поможет, в том виде как его хочет видеть 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Последний раз редактировалось RN6LIQ; 14.07.2009 в 07:47. Причина: Добавлено сообщение
-
14.07.2009, 07:48 #149
- Регистрация
- 27.08.2008
- Адрес
- Тосно, Ленинградская обл., Россия
- Возраст
- 39
- Сообщений
- 5,302
- Записей в дневнике
- 5
- Поблагодарили
- 817
- Поблагодарил
- 756
-
14.07.2009, 08:06 #150
- Регистрация
- 20.04.2005
- Адрес
- Оренбург, Россия
- Возраст
- 59
- Сообщений
- 3,390
- Поблагодарили
- 614
- Поблагодарил
- 119
Да.
Здесь какая-то ошибка. Логгер "цуко" умный, он при импорте проверяет соответствие европейского или азиатского префикса области, если префикс азиатский, а область европейская то он выдает ошибку. Оставляйте как есть, это пусть каждый сам правит руками.
ОК, "киттеляр"
Тупо брать первую правильную запись, в которой 5 знаков. Другого выхода не вижу. Если только не сравнивать по дате.73 ... R8TX :: Skype: rx9tx_ :: http://r8tx.qrz.ru
Социальные закладки