Exemplo n.º 1
0
        public static spellCheckResult STAExtendCSVDict(Meta meta, CVSDictItem[] items)
        {
            Action <PhraseWords, HashSet <string>, bool> addWords = (phr, res, isWrong) => { foreach (var w in phr.Idxs.Where(idx => isWrong == idx.Len < 0).Select(idx => phr.Text.Substring(idx.Pos, Math.Abs(idx.Len))))
                                                                                             {
                                                                                                 res.Add(w);
                                                                                             }
            };
            spellCheckResult data = new spellCheckResult();

            //Break and Spell check
            foreach (var row in items)
            {
                var txt = Fulltext.FtxLib.STABreakAndCheck(meta.src, row.Src); row.SrcLog = TPosLen.fromString(txt.Idxs);
                addWords(txt, data.getWords(true, true), true); addWords(txt, data.getWords(true, false), false);
                foreach (var bp in Fulltext.FtxLib.BracketParse(row.Src))
                {
                    data.getBracketsWords(true, bp.Br).Add(bp.Text);
                }
                txt = Fulltext.FtxLib.STABreakAndCheck(meta.dest, row.Dest); row.DestLog = TPosLen.fromString(txt.Idxs);
                addWords(txt, data.getWords(false, true), true); addWords(txt, data.getWords(false, false), false);
                foreach (var bp in Fulltext.FtxLib.BracketParse(row.Dest))
                {
                    data.getBracketsWords(false, bp.Br).Add(bp.Text);
                }
            }
            exportLogs(meta, items);
            data.save(meta);
            return(data);
        }