Esempio n. 1
0
        public int GetTagIntegerValue(string tagName, int defValue)
        {
            string str    = GetTagStringValue(tagName);
            int    result = ((str == "") ? defValue : SysUtils.ParseInt(str, defValue));

            return(result);
        }
Esempio n. 2
0
        public void ConvHelper_Tests()
        {
            int ival = SysUtils.ParseInt("495", 0);

            Assert.AreEqual(495, ival);

            ival = SysUtils.ParseInt("asdfa", 11);
            Assert.AreEqual(11, ival);

            Assert.AreEqual(11.05, SysUtils.ParseFloat(null, 11.05, false));
            Assert.AreEqual(11.05, SysUtils.ParseFloat("495,575", 11.05, false)); // badVal -> defVal

            double fval = SysUtils.ParseFloat("495.575", 0);

            Assert.AreEqual(495.575, fval);

            fval = SysUtils.ParseFloat("575,495", 0, true);
            Assert.AreEqual(575.495, fval);

            fval = SysUtils.ParseFloat("", 22.1);
            Assert.AreEqual(22.1, fval);

            fval = SysUtils.ParseFloat("sdgfdf", 22.2);
            Assert.AreEqual(22.2, fval);

            string st = SysUtils.AdjustNum(9, 3);

            Assert.AreEqual("009", st);
        }
Esempio n. 3
0
        public int GetId()
        {
            int result;

            try
            {
                string xref = GetXRefNum();
                result = SysUtils.ParseInt(xref, 0);
            }
            catch (Exception)
            {
                result = -1;
            }
            return(result);
        }
Esempio n. 4
0
        /// <summary>
        /// This function transforms the string into a date. All components of
        /// the date's string must be given by numbers in order of day / month / year.
        /// </summary>
        /// <param name="strDate"></param>
        /// <param name="calendar"></param>
        /// <param name="aException"></param>
        /// <returns></returns>
        public static GEDCOMDate CreateByFormattedStr(string dateStr, GEDCOMCalendar calendar, bool aException)
        {
            if (string.IsNullOrEmpty(dateStr))
            {
                return(null);
            }

            if (dateStr.IndexOf("-") >= 0)
            {
                dateStr = dateStr.Replace("-", ".");
            }
            if (dateStr.IndexOf("/") >= 0)
            {
                dateStr = dateStr.Replace("/", ".");
            }
            if (dateStr.IndexOf("_") >= 0)
            {
                dateStr = dateStr.Replace("_", " ");
            }

            string[] dtParts = dateStr.Split('.');
            if (dtParts.Length < 3)
            {
                if (aException)
                {
                    throw new GEDCOMDateException(string.Format("GEDCOMDate.CreateByFormattedStr(): date format is invalid {0}", dateStr));
                }

                return(null);
            }

            string pd = dtParts[0].Trim();
            string pm = dtParts[1].Trim();
            string py = dtParts[2].Trim();

            int day   = (pd == "") ? 0 : SysUtils.ParseInt(pd, 0);
            int month = (pm == "") ? 0 : SysUtils.ParseInt(pm, 0);
            int year  = (py == "") ? UNKNOWN_YEAR : SysUtils.ParseInt(py, UNKNOWN_YEAR);

            var date = new GEDCOMDate(null, null, "", "");

            date.SetDate(calendar, day, month, year);
            return(date);
        }
Esempio n. 5
0
        private static object ConvertColumnStr(string val, DataType type)
        {
            switch (type)
            {
            case DataType.dtString:
                return(val);

            case DataType.dtInteger:
                return(SysUtils.ParseInt(val, 0));

            case DataType.dtFloat:
                return(SysUtils.ParseFloat(val, 0.0));

            case DataType.dtDateTime:
                return(DateTime.Parse(val));

            case DataType.dtGEDCOMDate:
                return(GEDCOMDate.GetUDNByFormattedStr(val, GEDCOMCalendar.dcGregorian));
            }

            return(val);
        }
Esempio n. 6
0
        public void PrepareArray(string title, string xAxis, string yAxis, ChartStyle style, bool excludeUnknowns, List <StatsItem> vals)
        {
            GraphPane gPane = fGraph.GraphPane;

            try
            {
                gPane.CurveList.Clear();

                gPane.Title.Text       = title;
                gPane.XAxis.Title.Text = xAxis;
                gPane.YAxis.Title.Text = yAxis;

                if (style != ChartStyle.ClusterBar)
                {
                    PointPairList ppList = new PointPairList();

                    int num = vals.Count;
                    for (int i = 0; i < num; i++)
                    {
                        StatsItem item = vals[i];

                        string s   = item.Caption;
                        double lab = (s == "?") ? 0.0f : SysUtils.ParseFloat(s, 0.0f, true);

                        if (lab != 0.0d || !excludeUnknowns)
                        {
                            ppList.Add(lab, item.Value);
                        }
                    }
                    ppList.Sort();

                    switch (style)
                    {
                    case ChartStyle.Bar:
                        gPane.AddBar("-", ppList, Color.Green);
                        break;

                    case ChartStyle.Point:
                        gPane.AddCurve("-", ppList, Color.Green, SymbolType.Diamond).Symbol.Size = 3;
                        break;
                    }
                }
                else
                {
                    gPane.CurveList.Clear();

                    int      itemscount = vals.Count;
                    double[] yValuesF   = new double[itemscount];
                    double[] yValuesM   = new double[itemscount];
                    double[] xValues    = new double[itemscount];

                    for (int i = 0; i < itemscount; i++)
                    {
                        StatsItem sti = vals[i];
                        xValues[i]  = SysUtils.ParseInt(sti.Caption, 0);
                        yValuesF[i] = sti.ValF;
                        yValuesM[i] = sti.ValM;
                    }

                    gPane.AddBar("F", xValues, yValuesF, Color.Red);
                    gPane.AddBar("M", xValues, yValuesM, Color.Blue);

                    gPane.BarSettings.MinBarGap     = 0.0f;
                    gPane.BarSettings.MinClusterGap = 2.5f;

                    // expand the range of the Y axis slightly to accommodate the labels
                    //gPane.YAxis.Scale.Max += gPane.YAxis.Scale.MajorStep;

                    // Create TextObj's to provide labels for each bar
                    BarItem.CreateBarLabels(gPane, false, "f0");
                }
            }
            finally
            {
                fGraph.AxisChange();
                fGraph.Invalidate();
            }
        }
Esempio n. 7
0
        private void DefineEncoding(StreamReader reader)
        {
            GEDCOMCharacterSet charSet = fTree.Header.CharacterSet;

            switch (charSet)
            {
            case GEDCOMCharacterSet.csUTF8:
                if (!SysUtils.IsUnicodeEncoding(reader.CurrentEncoding))
                {
                    SetEncoding(Encoding.UTF8);     // file without BOM
                }
                else
                {
                    fEncodingState = EncodingState.esUnchanged;
                }
                break;

            case GEDCOMCharacterSet.csUNICODE:
                if (!SysUtils.IsUnicodeEncoding(reader.CurrentEncoding))
                {
                    SetEncoding(Encoding.Unicode);     // file without BOM
                }
                else
                {
                    fEncodingState = EncodingState.esUnchanged;
                }
                break;

            case GEDCOMCharacterSet.csANSEL:
                SetEncoding(new AnselEncoding());
                break;

            case GEDCOMCharacterSet.csASCII:
                var format = GetGEDCOMFormat(fTree);
                if (format == GEDCOMFormat.gf_Native)
                {
                    // GEDKeeper native format (old) and ASCII charset
                    SetEncoding(Encoding.GetEncoding(1251));
                }
                else
                {
                    var fmtProps = GEDCOMFormats[(int)format];
                    if (fmtProps.PredefCharset > -1)
                    {
                        SetEncoding(Encoding.GetEncoding(fmtProps.PredefCharset));
                    }
                    else
                    {
                        string cpVers = fTree.Header.CharacterSetVersion;
                        if (!string.IsNullOrEmpty(cpVers))
                        {
                            int sourceCodepage = SysUtils.ParseInt(cpVers, DEF_CODEPAGE);
                            SetEncoding(Encoding.GetEncoding(sourceCodepage));
                        }
                        else
                        {
                            SetEncoding(Encoding.GetEncoding(DEF_CODEPAGE));
                        }
                    }
                }
                break;
            }
        }