2012 m. spalio 13 d., šeštadienis

Duomenų bazių kūrimas ir panaudojimas Win-Test varžybose.


Win-Test programoje, skirtingai nei beveik visose kitose trumpųjų bangų varžybų programose (TR4W-INITIAL.EX, N1MM-History file), duomenų bazės su tikėtinais dalyvių kontroliniais numeriais nėra tekstiniame formate. Tampa sudėtinga ne tik peržiūrėti jų turinį, bet ir redaguoti, sudarinėti savo duomenų bazes. Tačiau “sudėtinga” nereiškia, kad yra neįmanoma.
Žemiau parodysiu kaip tai galima padaryti. Eilinį kartą priminsiu, kad savo ausimis reiktų pasitikėti kur kas labiau, nei bet kokiomis duomenų bazėmis.

Kaip pavyzdį paimsiu ir sau užsiduosiu užduotį: sukurti duomenų bazę EU HFC varžyboms su istoriškai perduodamais dalyvių numeriais.
Vienas būdas, pats paprasčiausias, bet labiausiai ribotas yra toks: Paimame praėjusių metų varžybų logą, jį atidarome ir einame File | Update database. Jei yra naudojama kažkokia sena duomenų bazė, ji bus papildyta atidaryto logo šaukiniais, jei nėra naudojama – bus sukurta nauja. Šios komandos tekstinis ekvivalentas –WRITEDB.
Ne visuomet, o tiksliau, dažniausiai toks būdas yra nepakankamas. Yra kitas efektyvesnis būdas ir jį ketinu aprašyti detaliau.

Mums prireiks:
Duomenų bazės tekstiniame formate. Galima imti bet kokios kitos varžybų programos tekstinio formato duomenų bazę, Susirandame TR4W EUHFC INITIAL.EX failą, pvz, kad ir čia: http://www.tr4w.com/initialex/index.html Atsidarome jį:



INITIAL.EX struktūra „Eilutėje„Šaukinys -  numeris“ beveik tinkama bazės kūrimui. Galima papildomai įrašyti bazės kūrimo autorių ir datą. Eilutės prasidedančios ženklu # programoje ignoruojamos. Jei kaip duomenų šaltinis  bus naudojama N1MM Call History failas, papildomai reiks išvalyti  kablelius ir kitą galbūt pasitaikysiančią informaciją. Tai padaryti nebus sunku netgi Notepad programoje naudojant „Find-Replace“ funkciją. Rezultatas turėtų gautis maždaug toks:


Sekantis žingsnis, kaip ir kai kurie sekantys, yra nebūtinas, bet bent jau pradžioje, kol bandysite, mokysitės, rekomenduotinas: padarytą failą pervardinkite į FileIn.txt
Toliau mums prireiks nedidelio (1,36MB) ir nemokamo įrankėlio(g)awk,  kurį galite pasiimti iš http://sourceforge.net/projects/gnuwin32/ Įdiekite jį į kompiuterį. Pvz C:\awk



Į šios programos bin direktoriją įkeliame duomenų failą FileIn.txt ir dar vieną, kurį dabar pasidarome:
Sukuriame naują tekstinį failą (pvz su Notepad‘u) Jo turinys turi būti toks:

{
   if ($0) {
     if ($0 !~ /^#/) {
       $1 = substr((toupper($1) "\0\0\0\0\0\0\0\0\0\0\0\0\0\0"),1,14)
       $2 = substr((toupper($2) "\0\0\0\0\0\0\0\0\0\0\0\0"),1,12)
       printf("%14s%12s",$1,$2)
     }
   }
}

O pavadinimas taip pat iš esmės galėtų būti bet koks, bet pradžioje pavadinkime txt2dtb.awk
Kaip pastebėjote, plėtinį .txt pakeičiau į .awk. Šį failą taip pat patalpiname C:\awk\bin direktorijoje.



Liko linksmoji dalis: programai nurodyti su kuo (FileIn.txt) padaryti ką (txt2dtb.awk) ir kaip pavadinti rezultatą (FileOut.dtb)
Darome taip: Atsidarome komandinę eilutę (Kompiuteryje Start->Run "cmd' "Enter" (arba „OK“). Joje įrašome: 


Paspaudus „Enter“, langas mirkteli ir toje pat programos direktorijoje atsiranda mums reikalingas FileOut.dtb failas.
Lieka visai nedaug. Šį gautą failą reikia pavadinti ne bet kaip, tačiau taip, kad Win-Test suprastų kurioms varžyboms jis skirtas. Pavadinimas parenkamas iš šios lentelės:

AGCW_HNY.DTB       AGCW Happy New Year contest
ARI.DTB            ARI 40/80 contest
ARIDX.DTB          ARI DX Contest (DX side)
ARI_SEZIONI.DTB    ARI Sezioni Contest
ARRL_160_DX.DTB    ARRL 160 m (contains US stations only)
ARRL_160_USVE.DTB  ARRL 160 m (contains US and DX stations)
ARRL-ALL.DTB       ARRL 10 m, CQWW 160 m contests, NA Sprint, NCCC Sprint
ARRL-DX.DTB        ARRL DX contest (use if you are inside US/VE)
ARRL-USVE.DTB      ARRL DX contest (use if you are outside US/VE)
CQIR.DTB           CQIR contest
CQWW.DTB           CQWW DX, GACW and JIDX contests
EUSPRINT.DTB       EU Sprint contest
EU_HF.DTB          EU HF contest
FOC_MARATHON.DTB   FOC Marathon
HADX.DTB           HADX contest
HELVETIA_DX.DTB    Helvetia contest (DX side)
HELVETIA_HB.DTB    Helvetia contest (HB side)
IARU_HF.DTB        IARU HF contest
IOTA.DTB           IOTA contest (Islands activities)

KCJ.DTB            KCJ (Keyman's Club of Japan) contest
KOS.DTB            King Of Spain contest (from 2005)
PACC_DX.DTB        PACC contest (DX side)
PACC_PA.DTB        PACC contest (PA side)
REFHF.DTB          REF HF contest
RSGB.DTB           RSGB 160 m and RSGB 21/28 (DX side) contests
RSGB_CMW.DTB       RSGB Commonwealth contest (BERU)
SCC.DTB            SCC RTTY Championship
SPDX.DTB           SP DX contest (DX side)
STEW-PERRY.DTB     Stew Perry contest
UBADX.DTB          UBA DX contest
UBA_SPRING_DX.DTB  UBA Spring contests (DX side)
UBA_SPRING_ON.DTB  UBA Spring contests (ON side)
UFT_HF.DTB         UFT HF contest
WAG_DL.DTB         WAG Contest (DL side), DARC Xmas Contest and DARC 10 M Contest
WAG_DX.DTB         WAG Contest (DX side)
YODX.DTB           YO DX Contest (DX side)


Taigi, pavadinome EU_HF.DTB.

Ką su juo daryti toliau, kur jį dėti?
Priklausomai nuo naudojamos operacinės sistemos,
Windows XP: C:\Documents and Settings\All Users\Application Data\Win-Test\databases\
Windows Vista and Windows 7: C:\ProgramData\Win-Test\databases\
Į šiuos aplankus patogu patekti per programos meniu punktus File | Explore | Databases directory


Kaip jį naudoti?
Visų pirma reikia pasakyti, kad šioje programoje duomenų bazių (neskaitant įprastinės MASTER.DTA) panaudojimas yra painus, o internetinė wiki dokumentacija ne visuomet tiksliai atitinka programos darbą. Teko daug aiškintis su Win-Test specialistu Bob, N6TV, teko jam pačiam daug ką aiškintis iki kai ką supratome. Be to, skirtinguose kontestuose programos logika truputį skiriasi.
Cituojant jį 
Well, for the ARRL DX contest, the documentation does not perfectly match the way that Win-Test works.   I am just beginning to understand this for the first time myself.
 Startuojant atitinkamą kontesto konfigūraciją, turi pasikrauti ir atitinkamas .DTB failas. Kalbant bendrai, ne vien apie .DTB bazes, Win-Test naudoja tokį įkėlimo eiliškumą ir prioritetus:
DEFAULT.*
fileName_band_mode.*
fileName_mode.*
fileName_band.*
fileName.*
MASTER.*
HF.* or VHF.*
Jei aptinkama daugiau nei vienas failas su tuo pačiu pavadinimu, paieška tęsiama pagal failo plėtinį:

*.DTA
*.SCP
*.DTB
Taigi, jei aptinkama  ir MASTER.DTA, ir MASTER.SCP, bet nėra kitų failų, bus įkelta MASTER.DTA.

Pasitikrinti koks failas naudojamas, galima Check Partial kontekstiniame meniu „Used files list...“

Toliau, naudojimas toks: Programoje Tools | Data entry | Exchange guessing


Turėtų būti suprantama. Pasirenkame tokį numerio rodymo būdą, koks mums priimtiniausias: paspaudus „tarpo“ klavišą, automatiškai arba po pauzės.
Pabaigai, dar vienas niuansas. Aukščiau aprašytu būdu užkrovus EU_HF.DTB failą, jame bus vykdoma ne tik kontrolinių numerių paieška, bet ir „Super Check partial“. Kartais tai gali būti  nepageidaujama. Sprendimas paprastas: MASTER.DTA pervardinkime į DEFAULT.DTA. CSP paieška bus vykdoma pervardintame MASTER.DTA, o kontrolinių numerių paieška EU_HF.DTB failuose.
Verta pabandyti. Truputį pažaidus su programos nustatymais galima gauti dar vieną pagalbinį (!) įrankį darbui varžybose. Aukščiau aprašytu būdu man pavyko sukurti ARRL-USVE.DTB su 20000+ JAV šaukiniais ir valstijomis darbui ARRL-DX varžybose.

Sėkmės kontestuose


Komentarų nėra:

Rašyti komentarą