public bool SetLine(string line) { if (line == null) { return(false); } int rc = 0; // analyza riadku rc = line.IndexOf(' '); if (rc > 0) { Tag = line.Substring(0, rc); p_fields = line.Substring(rc + 1).Split('|'); for (int j = 0; j < p_fields.Length; j++) { p_fields[j] = GCFestivalBase.SafeToString(p_fields[j]); } } else { Tag = string.Empty; p_fields = new string[] {}; } return(true); }
public static int OpenEventsFile(string pszFile) { int nMode = 0; int nRet = -1; StringBuilder sb = new StringBuilder(); GCFestivalBase lastFestival = null; using (StreamReader sr = new StreamReader(pszFile)) { nRet++; string line; while ((line = sr.ReadLine()) != null) { string tag = ""; string data = ""; if (nMode == 0) { // preparation if (line.Equals(GCFestivalSpecial.InstructionTag)) { tag = line; } else if (line.IndexOf(':') > 0) { tag = line.Substring(0, line.IndexOf(':')); data = line.Substring(line.IndexOf(':') + 1); } // processing of tag and data if (tag.Equals(typeof(GCFestivalBook).Name)) { string[] p = data.Split('|'); if (p.Length > 2) { GCFestivalBook fb = GCFestivalBookCollection.getSafeBook(GCFestivalBase.StringToInt(p[1], 6)); fb.CollectionName = GCFestivalBase.SafeToString(p[0]); if (pszFile.EndsWith(".ev.rl")) { fb.FileName = Path.GetFileName(pszFile); } fb.Visible = p[2].Equals("1"); nRet++; } } else if (tag.Equals(typeof(GCFestivalTithiMasa).Name)) { nRet++; GCFestivalTithiMasa pce = new GCFestivalTithiMasa(); pce.EncodedString = data; GCFestivalBook book = GCFestivalBookCollection.getSafeBook(pce.BookID); book.Add(pce); lastFestival = pce; } else if (tag.Equals(typeof(GCFestivalSankranti).Name)) { nRet++; GCFestivalSankranti se = new GCFestivalSankranti(); se.EncodedString = data; GCFestivalBook book = GCFestivalBookCollection.getSafeBook(se.BookID); book.Add(se); lastFestival = se; } else if (tag.Equals(typeof(GCFestivalRelated).Name)) { nRet++; GCFestivalRelated re = new GCFestivalRelated(); re.EncodedString = data; if (lastFestival != null) { lastFestival.AddRelatedFestival(re); } } else if (tag.Equals(typeof(GCFestivalEkadasi).Name)) { nRet++; GCFestivalEkadasi fe = new GCFestivalEkadasi(); fe.EncodedString = data; GCFestivalBook book = GCFestivalBookCollection.getSafeBook(fe.BookID); book.Add(fe); lastFestival = fe; } else if (tag.Equals(typeof(GCFestivalMasaDay).Name)) { nRet++; GCFestivalMasaDay me = new GCFestivalMasaDay(); me.EncodedString = data; GCFestivalBook book = GCFestivalBookCollection.getSafeBook(me.BookID); book.Add(me); lastFestival = me; } else if (tag.Equals(typeof(GCFestivalSpecial).Name)) { nRet++; GCFestivalSpecial se = new GCFestivalSpecial(); se.EncodedString = data; GCFestivalBook book = GCFestivalBookCollection.getSafeBook(se.BookID); book.Add(se); lastFestival = se; } else if (tag.Equals(GCFestivalSpecial.InstructionTag)) { nMode = 1; sb.Clear(); } } else if (nMode == 1) { if (line.Equals(GCFestivalSpecial.InstructionEndTag)) { if (lastFestival is GCFestivalSpecial) { GCFestivalSpecial se = lastFestival as GCFestivalSpecial; se.Script = sb.ToString(); } nMode = 0; } else { sb.AppendLine(line); } } } } return(nRet); }
/// <summary> /// Loading configuration from file /// </summary> /// <param name="fileName"></param> public void Load(string fileName) { FileName = fileName; using (StreamReader sr = new StreamReader(fileName)) { List <ParameterDescriptor> ar = this.ParameterDescriptions; ParameterDescriptor a; GCConfigRatedEntry lastEntry = null; int idx, idx2; GCRichFileLine rf = new GCRichFileLine(); while (rf.SetLine(sr.ReadLine())) { a = GetArrayRef(ar, rf.GetField(0)); try { if (rf.TagInt == 1) { idx = rf.GetFieldInt(1); a.Array[idx].Rating = rf.GetFieldDouble(2); a.Array[idx].Note = rf.GetField(3); lastEntry = a.Array[idx]; } else if (rf.TagInt == 2) { idx = rf.GetFieldInt(1); idx2 = rf.GetFieldInt(2); a.Array2[idx, idx2].Rating = rf.GetFieldDouble(3); a.Array2[idx, idx2].Note = rf.GetField(4); lastEntry = a.Array2[idx, idx2]; } else if (rf.TagInt == 3) { useAcceptLimit = bool.Parse(rf.GetField(0)); acceptLimit = rf.GetFieldDouble(1); } else if (rf.TagInt == 4) { useMinPeriodLength = bool.Parse(rf.GetField(0)); minPeriodLength = rf.GetFieldDouble(1); } else if (rf.TagInt == 5) { Title = GCFestivalBase.SafeToString(rf.GetField(0)); } else if (rf.TagInt == 6) { Description = GCFestivalBase.SafeToString(rf.GetField(0)); } else if (rf.TagInt == 99 && lastEntry != null) { GCConfigRatedMargin m = new GCConfigRatedMargin(); m.Title = GCFestivalBase.SafeToString(rf.GetField(0)); m.Rating = rf.GetFieldDouble(1); m.OffsetMinutesStart = rf.GetFieldInt(2); m.OffsetMinutesEnd = rf.GetFieldInt(3); m.Note = GCFestivalBase.SafeToString(rf.GetField(4)); lastEntry.AddMargin(m); } } catch { } } } }