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:
OH1KH 2022-02-16 10:25:25 +02:00
parent e2f399ca5c
commit 5f47da75a9
13 changed files with 239 additions and 60 deletions

48
help/a_page_template.html Normal file
View 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 &amp; 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>

View File

@ -20,9 +20,7 @@
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td align="left" width="33%">&nbsp;&lt;<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>&gt;</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%">&nbsp;&lt;<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>&gt;</td>
</tr>
</tbody>
</table>

View File

@ -20,9 +20,7 @@
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td align="left" width="33%">&nbsp;&lt;<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>&gt;</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%">&nbsp;&lt;<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>&gt;</td>
</tr>
</tbody>
</table>

View File

@ -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>

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

View File

@ -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
View 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 &amp; 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>

View File

@ -20,9 +20,7 @@
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td align="left" width="33%">&nbsp;&lt;<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>&gt;</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%">&nbsp;&lt;<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>&gt;</td>
</tr>
</tbody>
</table>

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -19,7 +19,7 @@ const
cBUILD = 1;
cBUILD_DATE = '2022-01-27';
cBUILD_DATE = '2022-02-15';
implementation