private string GenNorseName(sbyte langBase, Gender gender) { string result = ""; if (Viking_m.Count > 0 && Viking_f.Count > 0) { DicRecord fRec = null; string nd = ""; if (gender != Gender.gMale) { if (gender == Gender.gFemale) { int fn = RandomHelper.GetRandom(Viking_f.Count - 1); fRec = Viking_f[fn]; if (langBase != Langbase_Rus) { if (langBase == Langbase_Latin) { nd = Lat_end_f; } } else { nd = Rus_end_f; } } } else { int fn = RandomHelper.GetRandom(Viking_m.Count - 1); fRec = Viking_m[fn]; if (langBase != Langbase_Rus) { if (langBase == Langbase_Latin) { nd = Lat_end_m; } } else { nd = Rus_end_m; } } int sn = RandomHelper.GetRandom(Viking_m.Count - 1); DicRecord sRec = Viking_m[sn]; if (langBase != Langbase_Rus) { if (langBase == Langbase_Latin) { result = fRec.Name + " " + sRec.Name + nd; } } else { result = fRec.Rus_name + " " + sRec.Rus_name + nd; } } return(result); }
public void InitNorseDic() { try { Stream stm = NWResourceManager.LoadStream("Names.txt"); using (BinaryReader bis = new BinaryReader(stm)) { Parser aParser = new Parser(bis, StaticData.DefEncoding); while (aParser.Token != Parser.сptEOF) { char token = aParser.Token; if (token == Parser.сptSymbol) { string symName = aParser.TokenString(); aParser.NextToken(); aParser.CheckToken('='); aParser.NextToken(); if ((symName != "femaleCount") && (symName != "maleCount")) { string engName = aParser.TokenString(); aParser.NextToken(); aParser.CheckToken(','); aParser.NextToken(); string rusName = aParser.TokenString(); aParser.NextToken(); char g = symName[0]; //symName = symName.substring(1); //TAuxUtils.StrToInt(symName); DicRecord drec = new DicRecord(); drec.Name = engName; drec.Rus_name = rusName; if (g != 'f') { if (g == 'm') { Viking_m.Add(drec); } } else { Viking_f.Add(drec); } } } else { aParser.NextToken(); } } aParser.Dispose(); } } catch (Exception ex) { Logger.Write("TNWNameLib.InitNorseDic(): " + ex.Message); } }