Example #1
0
        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);
        }
Example #3
0
        /// <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
                    {
                    }
                }
            }
        }