コード例 #1
0
ファイル: index.cs プロジェクト: reactxx/rewise
 public static LangMatrixRow adjustNewfulltextDataRow(Dictionary <string, LangMatrixRow> res, string lang)
 {
     if (!res.TryGetValue(lang, out LangMatrixRow row))
     {
         res.Add(lang, row = new LangMatrixRow {
             lang        = lang,
             row         = new string[10],
             columnNames = new string[] { "0_breakGuid", "1_stemmGuid", "2_isEuroTalk", "3_isLingea", "4_isGoethe", "5_sqlQuery", "6_lcid", "7_GoogleTransApi", "8_MSWordCheck", "9_English" }
         });
     }
     return(row);
 }
コード例 #2
0
    public LangMatrix(StreamReader rdr) : this()
    {
        try {
            var             lines    = rdr.ReadAllLines().ToArray();
            var             cell00   = lines[0].Split(new char[] { ';' }, 2)[0].Split('/');
            LangMatrixRow[] rawLines = null;
            var             data     = new List <string[]>();
            if (cell00.Length != 2) // => RJ import format: change COLS and ROWS
            {
                var matxOld = lines.Select(l => l.Split(';')).ToArray();
                var len     = matxOld[0].Length;
                if (!matxOld.All(r => r.Length == len))
                {
                    throw new Exception();
                }
                var matxNew = new List <string[]>();
                for (var i = 0; i < matxOld[0].Length; i++)
                {
                    matxNew.Add(new string[matxOld.Length]);
                }
                for (var i = 0; i < matxOld.Length; i++)
                {
                    for (var j = 0; j < matxOld[0].Length; j++)
                    {
                        matxNew[j][i] = matxOld[i][j].Replace('\t', ' ').Replace("@@s", ";");
                    }
                }

                rawLines = readRaw(matxNew);
                for (var i = 0; i < rawLines.Length; i++)
                {
                    rawLines[i].lang = Langs.oldToNew(rawLines[i].lang);
                }

                rawLines = new LangMatrixRow[] { null }.Concat(rawLines).ToArray();
                cell00   = new string[] { "lang", "" };

                //var colsNum = rawLines.Length - 1;
                //var rowsNum = rawLines[0].row.Length + 1; // adds 1 for rawLines[].lang
                //langs = new string[rawLines[0].row.Length + 1];
                //for (var rowIdx = 0; rowIdx < rowsNum; rowIdx++) {
                //  if (rowIdx == 0) langs[0] = rawLines[0].lang;
                //  else langs[rowIdx] = rawLines[0].row[rowIdx - 1];
                //}
                //for (var i = 0; i < langs.Length; i++) langs[i] = Langs.oldToNew(langs[i]);
                //for (var rowIdx = 0; rowIdx < rowsNum; rowIdx++) {
                //  var row = new string[colsNum];
                //  for (var colIdx = 0; colIdx < colsNum; colIdx++) {
                //    if (rowIdx == 0) row[colIdx] = rawLines[colIdx + 1].lang;
                //    else row[colIdx] = rawLines[colIdx + 1].row[rowIdx - 1];
                //  }
                //  data.Add(row);
                //}
            }
            else
            {
                rawLines = readRaw(lines);
            }
            var langs            = new List <string>();
            var groupTheSameRows = cell00[0] == "langs"; // group by rows
            if (cell00[1] == "colNames")
            {
                colNames = rawLines[0].row;                    // save column names
            }
            rawLines.Skip(1).ForEach(l => {
                foreach (var lang in groupTheSameRows ? l.lang.Split(',') : Linq.Items(l.lang))
                {
                    langs.Add(lang);
                    data.Add(l.row);
                }
            });
            this.langs = langs.ToArray();

            this.data = data.ToArray();
        } finally {
            rdr.Close();
        }
    }