public void CalcScores(ColRegExpStatisticsProcessingParams param)
        {
            //MessageBox.Show("RegExpProcessor: CalcScores");
            using (var docsConnection = DatabaseHelper.CreateConnection(param.DocumentsDatabaseFilePath, param.Password))
            {
                docsConnection.Open();

                ///////////////////////////////////////////////////////////////////////////////

                var docsCount = DatabaseHelper.GetRowsCount(docsConnection, "Documents", param.OnlyPositiveScore ? "Score > 0" : null);

                string query = "SELECT ED_ENC_NUM, NOTE_TEXT, Score FROM Documents";

                if (param.OnlyPositiveScore)
                {
                    query += " WHERE Score > 0";
                }

                var documentRecords = DatabaseHelper.GetDataRecords(docsConnection, query);

                ///////////////////////////////////////////////////////////////////////////////

                Parallel_CalcScores(documentRecords, docsCount, 1, 2, param);

                ///////////////////////////////////////////////////////////////////////////////

                var matchResults = new RegExpProcessingResultsCollection <ColRegExpStatisticsProcessingResult>(_listRegExps.Select(x => new ColRegExpStatisticsProcessingResult
                {
                    ID             = x.ID,
                    TotalMatches   = x.TotalMatches,
                    TotalDocuments = x.TotalDocuments
                }));

                matchResults.Serialize(param.GetFullPath(param.MatchesOutputFileName));
            }
        }