mirror of
https://github.com/ok2cqr/cqrlog.git
synced 2024-09-21 02:17:19 +00:00
Changes to LoTW/eQSL download error files
Preface Sometimes you find some "QSO not found" errors in LoTW or eQSL download. There are some reasons for that. QSO did not complete and you did not log that, but the opponent station thinks it is completed. People type in their old paper logs to computer and upload them to LoTW/eQSL. QSO is ok but it is somewhere in your earlier paper logs. QSO may be an SWL report waiting to confirm via eQSL To make handling of those qsos a bit easier format of error files is changed. - Added adif header to lotw/eqsl download error files. - Added adif record for every lotw/eqsl error 'not in log' qso record with lotw/eqsl sent+date and contest_id 'Qso_was_not_found_in_log!' - Renamed lotw/eqsl error files to ".adi". Changed error file format by adif standard - Fixed frmMain speed button 'select all records' to be 'select all records now in buffer (max 500)' that is actually true. This resolves issue #380 by easy way - help file fixes and additions Squashed commit of the following: commit efcd6114d249bab1181c0f89ac6759f08b4e9597 Author: OH1KH <oh1kh@sral.fi> Date: Wed Feb 16 10:06:17 2022 +0200 help file fixes and additions commit fcd9d9fe521006bcc20a267684a9f811364bacf0 Author: OH1KH <oh1kh@sral.fi> Date: Tue Feb 15 19:28:00 2022 +0200 Removed *.txt from adif import selection list. Renamed lotw/eqsl error files to .adi. Changed error file format by adif standard commit b81dcb04c49c20c26e14a13f891b40a253592114 Author: OH1KH <oh1kh@sral.fi> Date: Tue Feb 15 11:47:10 2022 +0200 Added adif header to loww/eqsl error files.Added adif record for every lotw/eqsl error 'not in log' record with lotw/eqsl sent+date and command 'not in log'. Fixed frmMain 'select all records' to be 'select all records now in buffer (max 500)' that is actually true. Added *.txt files to show in adif import file selector so that lotw/eqsl eroro files can be found for import
This commit is contained in:
parent
e2f399ca5c
commit
5f47da75a9
48
help/a_page_template.html
Normal file
48
help/a_page_template.html
Normal file
@ -0,0 +1,48 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>CQRLOG - SUBJECT HERE</title></head>
|
||||
<body>
|
||||
<table border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top"><img src="img/exc.png"></td>
|
||||
<td align="justify" bgcolor="ffffcc" valign="top"><strong>
|
||||
<font color="red">WARNING!</font></strong>
|
||||
Backup your data often! BACKUP your log directory at the end of EVERY session!
|
||||
All that you need to backup and store in a safe place is the log database directory
|
||||
located in the ~/.config/cqrlog/database folder, or you can enable the autobackup function
|
||||
in Preferences. This autobackup function creates an ADIF file with a backup of your log.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<div style="text-align: left;"><strong>CQRLOG for LINUX by OK2CQR & OK1RR</strong></div>
|
||||
<p align="center"><img src="img/line.png"></p>
|
||||
<H2>SUBJECT HERE</H2><br><br>
|
||||
|
||||
|
||||
PAGE TEXT HERE
|
||||
|
||||
|
||||
|
||||
|
||||
<p align="center"><img src="img/line.png"></p>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
@ -20,9 +20,7 @@
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="33%"> <<a href="h26.html"> Prev</a></td>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
<td align="right" width="33%"><a href="h26.html">Next </a>></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -99,9 +97,7 @@ the sidetone of your radio rather than the PC speaker.
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="33%"> <<a href="h26.html"> Prev</a></td>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
<td align="right" width="33%"><a href="h26.html">Next </a>></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -20,9 +20,7 @@
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="33%"> <<a href="h1.html"> Prev</a></td>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
<td align="right" width="33%"><a href="h1.html#ch2">Next </a>></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -52,9 +50,7 @@ Commands used for HamLib CW are:
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="33%"> <<a href="h1.html"> Prev</a></td>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
<td align="right" width="33%"><a href="h1.html#ch2">Next </a>></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -63,7 +63,8 @@
|
||||
<br>You can also see the filename that was used to store records locally in case of future needs.
|
||||
<br><br>
|
||||
In case there are QSO records that are not found from your log an error file is written and you can see it by clicking <b>Yes</b> button.
|
||||
<br> Note that this file may contain also SWL eQSLs reportings of your qsos heard by SWLs.
|
||||
<br>Note that this file may contain also SWL eQSLs reportings of your qsos heard by SWLs.
|
||||
You can read more about import error file handling from <a href="qslimperr.html">LoTW/eQSL import errors</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
@ -130,6 +130,7 @@ Uploading was succesful<br></pre>
|
||||
total file size downloaded. When the download finishes, a summary appears and the import begins,
|
||||
showing the same progress indicator as above.
|
||||
<br>In case there are files that are not in your log the queston to show the error file appears.
|
||||
You can read more about import error file handling from <a href="qslimperr.html">LoTW/eQSL import errors</a>
|
||||
</div>
|
||||
<br>
|
||||
<img src="img/h88.png"><br><br>
|
||||
|
BIN
help/img/qslimperr1.png
Normal file
BIN
help/img/qslimperr1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
@ -82,28 +82,29 @@
|
||||
</ul>
|
||||
<strong><h3>Advanced operations</h3></strong>
|
||||
<ul>
|
||||
<li><a target="right" href="qslimperr.html">LoTW/eQSL import errors</a></li>
|
||||
<li><a target="right" href="h27.html">SQL console</a></li>
|
||||
</ul>
|
||||
<strong><h3>Maintenance</h3></strong>
|
||||
<ul>
|
||||
<li><a target="right" href="h3.html#ah24">ADIF import</a></li>
|
||||
<li><a target="right" href="h3.html#ah25">ADIF export</a></li>
|
||||
<li><a target="right" href="h3.html#ah26">HTML export</a></li>
|
||||
<li><a target="right" href="h3.html#ah27">EDI export</a></li>
|
||||
<li><a target="right" href="h3.html#ah28">Cabrillo export</a></li>
|
||||
<li><a target="right" href="h3.html#ah29">Program version update</a></li>
|
||||
<li><a target="right" href="h3.html#ah30">Country files update</a></li>
|
||||
<li><a target="right" href="h3.html#ah31">QSL Manager Database update</a></li>
|
||||
<li><a target="right" href="h3.html#ah32">Statistics Rebuilding</a></li>
|
||||
<li><a target="right" href="h3.html#ah27">EDI export</a></li>
|
||||
<li><a target="right" href="h3.html#ah26">HTML export</a></li>
|
||||
<li><a target="right" href="h3.html#ah34">Log backup</a></li>
|
||||
<li><a target="right" href="h7.html#cfm">LoTW confirmation report update</a></li>
|
||||
<li><a target="right" href="h3.html#ah33">Membership databases</a></li>
|
||||
<li><a target="right" href="h3.html#ah34">Log backup</a></li>
|
||||
<li><a target="right" href="h3.html#ah29">Program version update</a></li>
|
||||
<li><a target="right" href="h3.html#ah31">QSL Manager Database update</a></li>
|
||||
<li><a target="right" href="h3.html#ah32">Statistics Rebuilding</a></li>
|
||||
</ul>
|
||||
<strong><h3>Miscellaneous</h3></strong>
|
||||
<ul>
|
||||
<li><a target="right" href="h6.html">Supported radio types</a></li>
|
||||
<li><a target="right" href="h6.html#param">Comm parameters of some popular radios</a></li>
|
||||
<li><a target="right" href="h8.html">GNU GENERAL PUBLIC LICENSE</a></li>
|
||||
<li><a target="right" href="h6.html">Supported radio types</a></li>
|
||||
</ul>
|
||||
|
||||
<strong><h3>I want to...</h3></strong>
|
||||
|
84
help/qslimperr.html
Normal file
84
help/qslimperr.html
Normal file
@ -0,0 +1,84 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>CQRLOG - LoTW/eQSL import errors</title></head>
|
||||
<body>
|
||||
<table border="0" cellpadding="5" cellspacing="2" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td valign="top"><img src="img/exc.png"></td>
|
||||
<td align="justify" bgcolor="ffffcc" valign="top"><strong>
|
||||
<font color="red">WARNING!</font></strong>
|
||||
Backup your data often! BACKUP your log directory at the end of EVERY session!
|
||||
All that you need to backup and store in a safe place is the log database directory
|
||||
located in the ~/.config/cqrlog/database folder, or you can enable the autobackup function
|
||||
in Preferences. This autobackup function creates an ADIF file with a backup of your log.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<div style="text-align: left;"><strong>CQRLOG for LINUX by OK2CQR & OK1RR</strong></div>
|
||||
<p align="center"><img src="img/line.png"></p>
|
||||
<H2>LoTW/eQSL import errors</H2>
|
||||
<p><H4>Preface</H4>
|
||||
Sometimes you find some "QSO not found" errors in LoTW or eQSL download. There are some reasons for that.<br>
|
||||
<ul>
|
||||
<li>QSO did not complete and you did not log that, but the opponent station thinks it is completed.</li>
|
||||
<li>People type in their old paper logs to computer and upload them to LoTW/eQSL. QSO is ok but it is somewhere in your earlier paper logs.</li>
|
||||
<li>QSO may be an SWL report waiting to confirm via eQSL</li>
|
||||
</ul><br>
|
||||
Those same errors keep appearing every time when you download from LoTW/eQSL. If you confirm or archive qso in eQSL that does not help as downloading always gives all qsos from given start date.
|
||||
<br>Only way to get rid of those errors is to add them into cqrlog. Cqrlog LoTW and eQSL error file names are now modified from ".txt" to ."adi" and file contents are suitable for adif import.
|
||||
</p>
|
||||
<p><H4>Operating with error files</H4>
|
||||
If you just want to add all qsos that were not in your log you simply make <strong>QSO list/File/Import/ADIF</strong> using <strong>errors_LoTW.adi</strong> or <strong> errors_eQSL.adi</strong> file.
|
||||
<br>All qsos are added to your log with following additions:
|
||||
<ul>
|
||||
<li>LoTW qsl sent and LoTW qsl sent date is set to current date</li>
|
||||
<li>eQSL qsl sent and eQSL qsl sent date is set to current date</li>
|
||||
<ul><li>These prevent upload on next "Export only QSOs which has never been uploaded"</li></ul>
|
||||
<li>Contest name is set to "Qso_was_not_found_in_log!" for all imported QSOs</li>
|
||||
<ul><li>This allows quick find of all these kind of qsos using <strong>QSO list/Filter/Contest filter</strong></li></ul>
|
||||
</ul>
|
||||
<br>
|
||||
If you do not want to import all error qsos, or want to send a confirmation to eQSL for SWL report, or confirm old paper log qso via LoTW you can do it
|
||||
quite easy by modifying the <strong>errors_LoTW.adi</strong> or <strong> errors_eQSL.adi</strong> file with plain text editor <strong>before you import it to cqrlog.</strong>.
|
||||
</p><p><img src="img/qslimperr1.png"></p>
|
||||
<p>Here is a sample eQSL error file opened with Leafpad editor (that shows line numbers at left side).
|
||||
LoTW error file looks very similar, but has some text more for every qso record.
|
||||
<br><br>When you edit file do not touch the header of the file. Lines from 1 to 8 where header ends with "EOH" (End Of Header).
|
||||
<br>You can remove qso records that you do not want to import to your log by removing all record's lines. For example here remove the JA8TWF qso means
|
||||
to remove lines 10 - 22.
|
||||
</p><p>
|
||||
If you want to upload a confirmation for SWL to eQSL you remove one line. If we keep JA8TWF qso as example then removing line 20 will cause upload to eQSL
|
||||
at next time you execute eQSL upload/"Export only QSOs which has never been uploaded"
|
||||
<br>How ever if it is a SWL confirmation you should edit logged qso after import and change perhaps RSTs to "SWL" and add comment "Thanks for reporting" or something similar to notify it is an SWL confirmation.
|
||||
<br><br>Same way, if you want to LoTW confirm an old paper log qso now added to cqrlog, removing line 19 (in this example JA8TWF qso) before importing error file to cqrlog will cause upload to LoTW
|
||||
on next LoTW upload/"Export only QSOs which has never been uploaded"
|
||||
</p>
|
||||
<p>With these properties handling of "not found qsos" should become a little bit easier</p>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p align="center"><img src="img/line.png"></p>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
@ -20,9 +20,7 @@
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="33%"> <<a href="h26.html"> Prev</a></td>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
<td align="right" width="33%"><a href="h26.html">Next </a>></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@ -180,9 +178,7 @@
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="left" width="33%"> <<a href="h26.html"> Prev</a></td>
|
||||
<td align="center" width="33%">[<a href="index.html" target="_top">Menu</a>]</td>
|
||||
<td align="right" width="33%"><a href="h26.html">Next </a>></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -20,6 +20,10 @@ uses
|
||||
ComCtrls,lcltype, synachar, ExtCtrls, httpsend, blcksock, iniFiles, FileUtil,
|
||||
LazFileUtils;
|
||||
|
||||
const
|
||||
C_EErrorFile ='errors_eQSL.adi';
|
||||
C_LErrorFile ='errors_LoTW.adi';
|
||||
|
||||
type
|
||||
TImportProgressType = (imptRegenerateDXCC, imptImportDXCCTables, imptDownloadDXCCData, imptImportLoTWAdif,
|
||||
imptImportQSLMgrs, imptDownloadQSLData, imptInsertQSLManagers, imptImporteQSLAdif,
|
||||
@ -49,7 +53,9 @@ type
|
||||
procedure DownloadDXCCData;
|
||||
procedure DownloadDOKData;
|
||||
procedure CommonImport(var PosEOR:word;var f:TextFile;var call,band,mode,submode,qsodate,time_on,qslr,
|
||||
qslrdate,cqz,ituz,iota,grid,state,county:String);
|
||||
qslrdate,cqz,ituz,iota,grid,state,county,qsorecord:String);
|
||||
procedure WriteErrorRecord(f:char;call,band,mode,qsodate,time_on,qslr,qslrdate,
|
||||
cqz,ituz,iota,grid,state,county,qsorecord:string;var s:Tstringlist);
|
||||
procedure ImportLoTWAdif;
|
||||
procedure ImportQSLMgrs;
|
||||
procedure DownloadQSLData;
|
||||
@ -549,15 +555,17 @@ begin
|
||||
end;
|
||||
end;
|
||||
procedure TfrmImportProgress.CommonImport(var PosEOR:word;var f:TextFile;var call,band,mode,submode,qsodate,time_on,qslr,
|
||||
qslrdate,cqz,ituz,iota,grid,state,county:String);
|
||||
qslrdate,cqz,ituz,iota,grid,state,county,qsorecord:String);
|
||||
var
|
||||
a,
|
||||
prik,
|
||||
data,
|
||||
Dstamp,
|
||||
Buf :string;
|
||||
|
||||
Begin
|
||||
Buf:='';
|
||||
Dstamp:=FormatDateTime('YYYYMMDD',Now);
|
||||
while not ((PosEOR > 0) or eof(f)) do //combine one record. LoTW adif has one tag per line
|
||||
Begin
|
||||
Readln(f, a);
|
||||
@ -565,8 +573,21 @@ Begin
|
||||
PosEOR := Pos('<EOR>',UpperCase(a));
|
||||
Buf := Buf+a;
|
||||
end;
|
||||
Buf:=buf+'<EOR>'; //in case we have broken record in broken file (hit eof before it is time)
|
||||
if LocalDbg then Writeln('one record read: ',Buf);
|
||||
if Pos('<EOR>',UpperCase(Buf))=0 then
|
||||
Buf:=buf+'<EOR>'; //in case we have broken record in broken file (hit eof before it is time)
|
||||
if LocalDbg then
|
||||
Writeln('one record read: ',Buf);
|
||||
|
||||
//Here we create a qso record that has comment and lotw+eqsl sent set.
|
||||
//user can add this record to log to get rid of lotw/eqsl error "Not found in log"
|
||||
//in case this qso is really wanted to be confirmed (maybe is SWL report) user can wipe out
|
||||
//the first 1-3 lines (lotw,eqsl sent, comment) and import only the last line to log and so
|
||||
//it will be added to log and sent to lotw/eqsl during next upload
|
||||
qsorecord:= '<LOTW_QSL_SENT:1>Y<LOTW_QSLSDATE:8>'+Dstamp+'<APP_CQRLOG_NOTE:55>Remove this line before import to allow upload to LoTW'
|
||||
+LineEnding+'<EQSL_QSL_SENT:1>Y<EQSL_QSLSDATE:8>'+Dstamp+'<APP_CQRLOG_NOTE:55>Remove this line before import to allow upload to eQSL'
|
||||
+LineEnding+'<CONTEST_ID:25>Qso_was_not_found_in_log!'
|
||||
+LineEnding+Buf;
|
||||
|
||||
mode := ''; //be sure there is no mode at this point
|
||||
repeat
|
||||
begin
|
||||
@ -598,7 +619,44 @@ Begin
|
||||
end; //repeat
|
||||
until pos('<EOR>',uppercase(Buf))=1;
|
||||
end;
|
||||
procedure TfrmImportProgress.WriteErrorRecord(f:char;call,band,mode,qsodate,time_on,qslr,qslrdate,
|
||||
cqz,ituz,iota,grid,state,county,qsorecord:string;var s:Tstringlist);
|
||||
var
|
||||
l,
|
||||
tmp:String;
|
||||
|
||||
|
||||
Begin
|
||||
tmp:=LineEnding
|
||||
+'------------------------------------------------'+LineEnding
|
||||
+'QSO NOT FOUND in log'+LineEnding
|
||||
+'Call: '+call+LineEnding
|
||||
+'Band: '+band+LineEnding
|
||||
+'Mode: '+mode+LineEnding
|
||||
+'QSO_date: '+qsodate+LineEnding
|
||||
+'Time_on: '+time_on+LineEnding;
|
||||
if f='L' then
|
||||
begin
|
||||
tmp:=tmp
|
||||
+'QSLR: '+qslr+LineEnding
|
||||
+'QSLRDate: '+qslrdate+LineEnding
|
||||
+'CQZ: '+cqz+LineEnding
|
||||
+'ITUZ: '+ituz+LineEnding
|
||||
+'IOTA: '+iota+LineEnding
|
||||
+'Grid: '+grid+LineEnding
|
||||
+'State: '+state+LineEnding
|
||||
+'County: '+county+LineEnding;
|
||||
end;
|
||||
tmp:=tmp+'------------------------------------------------'+LineEnding;
|
||||
l:=IntToStr(length(tmp));
|
||||
//end of APP_CQRLOG_ERROR tag
|
||||
tmp:=tmp
|
||||
+qsorecord+LineEnding
|
||||
+LineEnding;
|
||||
|
||||
s.Add('<APP_CQRLOG_ERROR:'+l+'>'+tmp);
|
||||
|
||||
end;
|
||||
procedure TfrmImportProgress.ImportLoTWAdif;
|
||||
var
|
||||
num : Word = 1;
|
||||
@ -610,6 +668,7 @@ var
|
||||
f : TextFile;
|
||||
PosEOH : Word;
|
||||
PosEOR : Word;
|
||||
qsorecord: String;
|
||||
call : String;
|
||||
band : String;
|
||||
mode : String;
|
||||
@ -641,7 +700,17 @@ begin
|
||||
|
||||
|
||||
l := TStringList.Create;
|
||||
l.Add('<ADIF_VER:5>3.1.0');
|
||||
l.Add('<CREATED_TIMESTAMP:15>'+FormatDateTime('YYYYMMDD hhmmss',dmUtils.GetDateTime(0)));
|
||||
l.Add('LoTW import errors from CQRLOG for Linux version '+dmData.VersionString);
|
||||
l.Add('Copyright (C) '+FormatDateTime('YYYY',now)+' by Petr, OK2CQR and Martin, OK1RR');
|
||||
l.Add('');
|
||||
l.Add('Internet: http://www.cqrlog.com');
|
||||
l.Add('');
|
||||
l.Add('<EOH>');
|
||||
l.Add('');
|
||||
AssignFile(f,FileName);
|
||||
|
||||
try
|
||||
if cqrini.ReadBool('OnlineLog','IgnoreLoTWeQSL',False) and dmLogUpload.LogUploadEnabled then
|
||||
dmLogUpload.DisableOnlineLogSupport;
|
||||
@ -683,7 +752,7 @@ begin
|
||||
begin
|
||||
qso_in_log := False;
|
||||
CommonImport(PosEOR,f,call,band,mode,submode,qsodate,time_on,qslr,
|
||||
qslrdate,cqz,ituz,iota,grid,state,county);
|
||||
qslrdate,cqz,ituz,iota,grid,state,county,qsorecord);
|
||||
|
||||
if PosEOR > 0 then
|
||||
begin
|
||||
@ -786,22 +855,7 @@ begin
|
||||
end;
|
||||
if not qso_in_log then
|
||||
begin
|
||||
l.Add('QSO NOT FOUND in log');
|
||||
l.Add('Call: '+call);
|
||||
l.Add('Band: '+band);
|
||||
l.Add('Mode: '+mode);
|
||||
l.Add('QSO_date: '+qsodate);
|
||||
l.Add('Time_on: '+time_on);
|
||||
l.Add('QSLR: '+qslr);
|
||||
l.Add('QSLRDate: '+qslrdate);
|
||||
l.Add('CQZ: '+cqz);
|
||||
l.Add('ITUZ: '+ituz);
|
||||
l.Add('IOTA: '+iota);
|
||||
l.Add('Grid: '+grid);
|
||||
l.Add('State: '+state);
|
||||
l.Add('County: '+county);
|
||||
l.Add('------------------------------------------------');
|
||||
l.Add('');
|
||||
WriteErrorRecord('L',call,band,mode,qsodate,time_on,qslr,qslrdate,cqz,ituz,iota,grid,state,county,qsorecord,l);
|
||||
inc(ErrorCount)
|
||||
end
|
||||
end
|
||||
@ -814,10 +868,10 @@ begin
|
||||
dmData.trQ1.Commit;
|
||||
if ErrorCount > 0 then
|
||||
begin
|
||||
l.SaveToFile(dmData.UsrHomeDir + 'lotw_error.txt');
|
||||
if Application.MessageBox(PChar(IntToStr(ErrorCount)+' QSO(s) were not found in your log. '#13' QSO(s) are stored to '+dmData.UsrHomeDir + 'lotw_error.txt'+
|
||||
l.SaveToFile(dmData.UsrHomeDir + C_LErrorFile);
|
||||
if Application.MessageBox(PChar(IntToStr(ErrorCount)+' QSO(s) were not found in your log.'+LineEnding+'QSO(s) are stored to '+dmData.UsrHomeDir + C_LErrorFile +
|
||||
LineEnding+LineEnding+'Do you want to show the file?'),'Question ....',mb_YesNo+mb_IconQuestion)=idYes then
|
||||
frmAdifImport.OpenInTextEditor(dmData.UsrHomeDir + 'lotw_error.txt')
|
||||
frmAdifImport.OpenInTextEditor(dmData.UsrHomeDir + C_LErrorFile)
|
||||
end
|
||||
end
|
||||
else begin
|
||||
@ -956,6 +1010,7 @@ var
|
||||
f : TextFile;
|
||||
PosEOH : Word;
|
||||
PosEOR : Word;
|
||||
qsorecord: String;
|
||||
call : String;
|
||||
band : String;
|
||||
mode : String;
|
||||
@ -990,6 +1045,15 @@ var
|
||||
|
||||
begin
|
||||
l := TStringList.Create;
|
||||
l.Add('<ADIF_VER:5>3.1.0');
|
||||
l.Add('<CREATED_TIMESTAMP:15>'+FormatDateTime('YYYYMMDD hhmmss',dmUtils.GetDateTime(0)));
|
||||
l.Add('eQSL import errors from CQRLOG for Linux version '+dmData.VersionString);
|
||||
l.Add('Copyright (C) '+FormatDateTime('YYYY',now)+' by Petr, OK2CQR and Martin, OK1RR');
|
||||
l.Add('');
|
||||
l.Add('Internet: http://www.cqrlog.com');
|
||||
l.Add('');
|
||||
l.Add('<EOH>');
|
||||
l.Add('');
|
||||
if dmData.trQ.Active then
|
||||
dmData.trQ.RollBack;
|
||||
if dmData.trQ1.Active then
|
||||
@ -1039,7 +1103,7 @@ begin
|
||||
begin
|
||||
qso_in_log := False;
|
||||
CommonImport(PosEOR,f,call,band,mode,submode,qsodate,time_on,qslr,
|
||||
qslrdate,cqz,ituz,iota,grid,state,county);
|
||||
qslrdate,cqz,ituz,iota,grid,state,county,qsorecord);
|
||||
|
||||
if PosEOR > 0 then
|
||||
begin
|
||||
@ -1125,15 +1189,7 @@ begin
|
||||
end;
|
||||
if not qso_in_log then
|
||||
begin
|
||||
l.Add('QSO NOT FOUND in log');
|
||||
l.Add('Call: '+call);
|
||||
l.Add('Band: '+band);
|
||||
l.Add('Mode: '+mode);
|
||||
l.Add('Mode: '+submode);
|
||||
l.Add('QSO_date: '+qsodate);
|
||||
l.Add('Time_on: '+time_on);
|
||||
l.Add('------------------------------------------------');
|
||||
l.Add('');
|
||||
WriteErrorRecord('E',call,band,mode,qsodate,time_on,qslr,qslrdate,cqz,ituz,iota,grid,state,county,qsorecord,l);
|
||||
inc(ErrorCount)
|
||||
end
|
||||
end
|
||||
@ -1147,10 +1203,10 @@ begin
|
||||
CloseFile(f);
|
||||
if ErrorCount > 0 then
|
||||
begin
|
||||
l.SaveToFile(dmData.UsrHomeDir + 'eQSL_error.txt');
|
||||
if Application.MessageBox(PChar(IntToStr(ErrorCount)+' QSO(s) were not found in your log. '#13' QSO(s) are stored to '+dmData.UsrHomeDir + 'eQSL_error.txt'+
|
||||
l.SaveToFile(dmData.UsrHomeDir + C_EErrorFile);
|
||||
if Application.MessageBox(PChar(IntToStr(ErrorCount)+' QSO(s) were not found in your log.'+LineEnding+'QSO(s) are stored to '+dmData.UsrHomeDir + C_EErrorFile +
|
||||
LineEnding+LineEnding+'Do you want to show the file?'),'Question ....',mb_YesNo+mb_IconQuestion)=idYes then
|
||||
frmAdifImport.OpenInTextEditor(dmData.UsrHomeDir + 'eQSL_error.txt')
|
||||
frmAdifImport.OpenInTextEditor(dmData.UsrHomeDir + C_EErrorFile)
|
||||
end
|
||||
finally
|
||||
l.Free;
|
||||
|
@ -1929,7 +1929,7 @@ object frmMain: TfrmMain
|
||||
end
|
||||
object acSelAll: TAction
|
||||
Caption = 'Select all'
|
||||
Hint = 'Select all records'
|
||||
Hint = 'Select all records now in buffer (Max 500)'
|
||||
ImageIndex = 21
|
||||
OnExecute = acSelAllExecute
|
||||
end
|
||||
|
@ -1166,7 +1166,7 @@ end;
|
||||
|
||||
procedure TfrmMain.acSelAllExecute(Sender: TObject);
|
||||
begin
|
||||
if application.MessageBox('Do you really want to select all records?',
|
||||
if application.MessageBox('Do you really want to select all records'+#10+#13+'now in buffer (Max 500)?',
|
||||
'Question ...', mb_ok + mb_YesNo) in [idNo, idCancel] then
|
||||
exit;
|
||||
try
|
||||
|
@ -19,7 +19,7 @@ const
|
||||
cBUILD = 1;
|
||||
|
||||
|
||||
cBUILD_DATE = '2022-01-27';
|
||||
cBUILD_DATE = '2022-02-15';
|
||||
|
||||
|
||||
implementation
|
||||
|
Loading…
Reference in New Issue
Block a user