Beispiel #1
0
        public DataTable GetTraceJHMethod(string strPath)
        {
            List <TracerJHModel> lstTJM = new List <TracerJHModel>();
            DataTable            dtTJM  = ListToDataTableUtil.ListToDataTable(lstTJM);
            FileStream           fs     = new FileStream(strPath, FileMode.Open);
            StreamReader         sr     = new StreamReader(fs);
            string strReadLine          = sr.ReadLine();

            while (strReadLine != null)
            {
                string[] strArray = Regex.Split(strReadLine, @"\s+");
                DataRow  drTJM    = dtTJM.NewRow();
                drTJM["smjh"]  = strArray[0].Substring(1, strArray[0].Length - 2);
                drTJM["trace"] = strArray[1].Substring(1, strArray[1].Length - 2);
                dtTJM.Rows.Add(drTJM);

                strReadLine = sr.ReadLine();
            }



            sr.Close();
            fs.Close();
            return(dtTJM);
        }
Beispiel #2
0
        public static void GetAllLocation(string path)
        {
            string              strReadLine;
            WellModel           wm    = new WellModel();
            ListToDataTableUtil ltdtu = new ListToDataTableUtil();
            List <WellModel>    lstWM = new List <WellModel>();

            dtSK = ltdtu.ListToDataTable(lstWM);
            FileStream   fs = new FileStream(path, FileMode.Open);
            StreamReader sr = new StreamReader(fs);

            strReadLine = sr.ReadLine();
            while (strReadLine != null)
            {
                if (strReadLine.Equals("COMPDAT"))
                {
                    strReadLine = sr.ReadLine();
                    string[] strArray = Regex.Split(strReadLine, @"\s+");
                    if (strArray[5].Equals("'OPEN'"))
                    {
                        DataRow dr = dtSK.NewRow();
                        wm       = new WellModel();
                        dr["jh"] = strArray[0].Substring(1, strArray[0].Length - 2);
                        dr["x"]  = Convert.ToInt32(strArray[1]);
                        dr["y"]  = Convert.ToInt32(strArray[2]);
                        dr["k"]  = Convert.ToInt32(strArray[3]);
                        dtSK.Rows.Add(dr);
                    }
                }
                strReadLine = sr.ReadLine();
            }
            sr.Close();
            fs.Close();
        }
Beispiel #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            gridResult.Visible = false;
            ReadFilesDAL.ReadPermX();
            ReadFilesDAL.ReadDZ();
            ReadFilesDAL.ReadPORO();
            ReadFilesDAL.CalcDCXS();

            WellModel          wm       = new WellModel();
            List <ResultModel> lstRM    = new List <ResultModel>();
            List <WellModel>   lstOil   = new List <WellModel>();
            List <WellModel>   lstWater = new List <WellModel>();
            ///List<WellModel> lstDY = new List<WellModel>();
            ListToDataTableUtil ltdu = new ListToDataTableUtil();

            dtResult = ltdu.ListToDataTable(lstRM);
            string[] sj = File.ReadAllLines("水.txt");
            for (int i = 0; i < sj.Count(); i++)
            {
                wm = new WellModel();
                string[] str = Regex.Split(sj[i], @"\s+");
                wm.jhs  = str[0];
                wm.date = str[1];
                wm.x    = Convert.ToInt32(str[2]);
                wm.y    = Convert.ToInt32(str[3]);
                wm.k    = Convert.ToInt32(str[4]);
                wm.mncs = Convert.ToDouble(str[5]);
                lstWater.Add(wm);
            }
            dtWater = ltdu.ListToDataTable(lstWater);
            string[] yj = File.ReadAllLines("油.txt");
            for (int i = 0; i < yj.Count(); i++)
            {
                wm = new WellModel();
                string[] str = Regex.Split(yj[i], @"\s+");
                wm.jhy   = str[0];
                wm.date  = str[1];
                wm.x     = Convert.ToInt32(str[2]);
                wm.y     = Convert.ToInt32(str[3]);
                wm.k     = Convert.ToInt32(str[4]);
                wm.mncs  = Convert.ToDouble(str[5]);
                wm.mncy  = Convert.ToDouble(str[6]);
                wm.mncye = Convert.ToDouble(str[7]);
                wm.hs    = Convert.ToDouble(str[8]);
                lstOil.Add(wm);
            }
            dtOil = ltdu.ListToDataTable(lstOil);
            DataTable dtDate = dtWater.DefaultView.ToTable(true, "date");

            for (int i = 0; i < dtDate.Rows.Count; i++)
            {
                cmbDate.Properties.Items.Add(dtDate.Rows[i]["date"]);
            }
        }
Beispiel #4
0
        public static void GetTreeListMethod()
        {
            List <TreeListModel> lstTLM = new List <TreeListModel>();

            dtTreeList = ListToDataTableUtil.ListToDataTable(lstTLM);
            string s = DXApplication1.Properties.Resources.treelist;

            string[] arr = Regex.Split(s, @"\s+");
            for (int i = 0; i < arr.Count() - 1; i = i + 3)
            {
                DataRow drTreeList = dtTreeList.NewRow();
                drTreeList["parentid"] = Convert.ToInt32(arr[i]);
                drTreeList["id"]       = Convert.ToInt32(arr[i + 1]);
                drTreeList["name"]     = arr[i + 2];

                dtTreeList.Rows.Add(drTreeList);
            }
        }
Beispiel #5
0
        public static void GetJJMethod()
        {
            List <JJModel> lstJJ = new List <JJModel>();

            dtJJ = ListToDataTableUtil.ListToDataTable(lstJJ);

            string s = DXApplication1.Properties.Resources.jj;

            string[] arr = Regex.Split(s, @"\s+");
            for (int i = 0; i < arr.Count() - 1; i = i + 3)
            {
                DataRow drJJ = dtJJ.NewRow();
                drJJ["jhy"] = arr[i];
                drJJ["jhs"] = arr[i + 1];
                drJJ["jj"]  = arr[i + 2];
                dtJJ.Rows.Add(drJJ);
            }
        }
        public void GetMnLayer(string strPath)
        {
            dtWater.Clear();
            dtOil.Clear();

            DateUtil du           = new DateUtil();
            string   strStartDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strStartDate), "yyyyMM", null));
            string   strEndDate   = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strEndDate), "yyyyMM", null).AddMonths(1));

            string       strReadLine;
            string       strJH = string.Empty;
            string       strDate = string.Empty;
            bool         isWell = false;
            bool         isWaterWell = false;
            int          isDate = -1, isRead = -1;
            FileStream   fs = new FileStream(strPath, FileMode.Open);
            StreamReader sr = new StreamReader(fs);

            List <WellModel> lstWaterM = new List <WellModel>();
            List <WellModel> lstOilM   = new List <WellModel>();

            dtWater = ListToDataTableUtil.ListToDataTable(lstWaterM);
            dtOil   = ListToDataTableUtil.ListToDataTable(lstOilM);


            strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
            string trim = strReadLine.Trim();

            while (strReadLine != null)
            {
                trim = strReadLine.Trim();

                string[] strArray = Regex.Split(trim, @"\s+");

                if (((strArray.Length == 12) && (strArray[0].Equals("STEP")) && (strArray[8].Equals("REPT"))) || ((strArray.Length == 11) && (strArray[0].Equals("STEP")) && (strArray[7].Equals("REPT"))))
                {
                    strDate = strArray[strArray.Length - 1];
                    if (strDate.Equals(strStartDate))
                    {
                        isDate = 0;
                    }
                    if (strDate.Equals(strEndDate))
                    {
                        isRead = -1;
                        isDate = -1;
                        break;
                    }
                }
                if (isDate == 0)
                {
                    if (trim.Equals("INJECTION  REPORT"))
                    {
                        isRead      = 0;
                        isWaterWell = true;
                    }
                    else if (trim.Equals("PRODUCTION REPORT"))
                    {
                        isRead      = 0;
                        isWaterWell = false;
                    }
                    else if (trim.Equals("CUMULATIVE PRODUCTION/INJECTION TOTALS"))
                    {
                        isRead = -1;
                    }

                    if (isRead >= 0)
                    {
                        if (isRead == 0)
                        {
                            isRead++;
                            for (int i = 0; i < 7; i++)
                            {
                                strReadLine = sr.ReadLine();
                                if (strReadLine != null)
                                {
                                    strReadLine = strReadLine.Replace(":", " ").Replace(",", " ");
                                }
                            }
                        }
                        trim = strReadLine.Trim();

                        strArray = Regex.Split(trim, @"\s+");
                        if (isWaterWell)
                        {
                            if ((strArray.Count() >= 12) && (strArray.Count() <= 13))
                            {
                                if (strArray.Count() == 12 || strArray[4].Equals("SHUT"))
                                {
                                    if (strArray[0].Length > 0)
                                    {
                                        if (!strArray[0].Equals("BLOCK"))
                                        {
                                            strJH = strArray[0];
                                        }
                                        isWell = true;
                                        if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT"))
                                        {
                                            isWell = false;
                                        }
                                        while (isWell)
                                        {
                                            strArray = Regex.Split(trim, @"\s+");
                                            if (strArray[0].Equals("BLOCK"))
                                            {
                                                if (!strArray[4].Equals("SHUT"))
                                                {
                                                    if (Convert.ToDouble(strArray[5]) > 0)
                                                    {
                                                        DataRow drWater = dtWater.NewRow();
                                                        drWater["DATE"]   = strDate;
                                                        drWater["dtDate"] = du.TextDateStringCovertToDateTime(strDate);
                                                        drWater["jhs"]    = strJH;
                                                        drWater["x"]      = Convert.ToInt32(strArray[1]);
                                                        drWater["y"]      = Convert.ToInt32(strArray[2]);
                                                        drWater["k"]      = Convert.ToInt32(strArray[3]);
                                                        drWater["mncs"]   = Convert.ToDouble(strArray[5]);
                                                        dtWater.Rows.Add(drWater);
                                                    }
                                                }
                                                strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                                                trim        = strReadLine.Trim();
                                            }

                                            else
                                            {
                                                isWell = false;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (strArray.Count() >= 16)
                            {
                                if (strArray.Count() == 16 || strArray[4].Equals("SHUT"))
                                {
                                    if (strArray[0].Length > 0)
                                    {
                                        if (!strArray[0].Equals("BLOCK"))
                                        {
                                            strJH = strArray[0];
                                        }
                                        isWell = true;
                                        if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT"))
                                        {
                                            isWell = false;
                                        }
                                        while (isWell)
                                        {
                                            strArray = Regex.Split(trim, @"\s+");
                                            if (strArray[0].Equals("BLOCK"))
                                            {
                                                if (!strArray[4].Equals("SHUT"))
                                                {
                                                    if (Convert.ToDouble(strArray[4]) > 0)
                                                    {
                                                        DataRow drOil = dtOil.NewRow();
                                                        drOil["DATE"]   = strDate;
                                                        drOil["dtDate"] = du.TextDateStringCovertToDateTime(strDate);
                                                        drOil["jhy"]    = strJH;
                                                        drOil["x"]      = Convert.ToInt32(strArray[1]);
                                                        drOil["y"]      = Convert.ToInt32(strArray[2]);
                                                        drOil["k"]      = Convert.ToInt32(strArray[3]);
                                                        if (Convert.ToDouble(strArray[5]) < 0)
                                                        {
                                                            drOil["mncs"] = 0;
                                                        }
                                                        else
                                                        {
                                                            drOil["mncs"] = Convert.ToDouble(strArray[5]);
                                                        }

                                                        drOil["mncy"]  = Convert.ToDouble(strArray[4]);
                                                        drOil["mncye"] = Convert.ToDouble(strArray[5]) + Convert.ToDouble(strArray[4]);
                                                        dtOil.Rows.Add(drOil);
                                                    }
                                                }
                                                strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                                                trim        = strReadLine.Trim();
                                            }
                                            else
                                            {
                                                isWell = false;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                strReadLine = sr.ReadLine();
                if (strReadLine != null)
                {
                    strReadLine = strReadLine.Replace(":", " ").Replace(",", " ");
                }
            }


            sr.Close();
            fs.Close();
        }
        /// <summary>
        /// 读取示踪剂文件
        /// </summary>
        public void GetTracer(string strPath, string strTrace)
        {
            FileStream   fs = new FileStream(strPath, FileMode.Open);
            StreamReader sr = new StreamReader(fs);

            try
            {
                GetTraceJH gtj = new GetTraceJH();

                DataTable dtTracerJH = gtj.GetTraceJHMethod(strTrace);

                DateUtil du = new DateUtil();
                //string strStartDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strStartDate), "yyyyMM", null));
                //string strEndDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strEndDate), "yyyyMM", null).AddMonths(1));

                string strReadLine;
                string strJH     = string.Empty;
                string strDate   = string.Empty;
                string strTracer = string.Empty;
                bool   isWell    = false;
                bool   isRead    = false;
                bool   isWater   = false;
                bool   isDate    = false;


                List <TracerModel> lstTM     = new List <TracerModel>();
                List <OilModel>    lstOilM   = new List <OilModel>();
                List <WaterModel>  lstWaterM = new List <WaterModel>();
                DataTable          dtOil     = ListToDataTableUtil.ListToDataTable(lstOilM);
                DataTable          dtWater   = ListToDataTableUtil.ListToDataTable(lstWaterM);
                DataTable          dtTracer  = ListToDataTableUtil.ListToDataTable(lstTM);
                strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                string trim = strReadLine.Trim();
                while (strReadLine != null)
                {
                    trim = strReadLine.Trim();

                    string[] strArray = Regex.Split(trim, @"\s+");

                    if (((strArray.Length == 12) && (strArray[0].Equals("STEP")) && (strArray[8].Equals("REPT"))) || ((strArray.Length == 11) && (strArray[0].Equals("STEP")) && (strArray[7].Equals("REPT"))))
                    {
                        strDate = strArray[strArray.Length - 1];
                        //isDate = true;
                        //if (strDate.Equals(strStartDate))
                        //{
                        //    isDate = true;
                        //}
                        if (strDate.Equals("(1-NOV-2014)"))
                        {
                            isDate = true;
                        }
                        //if (strDate.Equals(strEndDate))
                        //{
                        //    isDate = false;
                        //    break;

                        //}
                    }
                    if (isDate)
                    {
                        if (strArray[0].Equals("TRACER") && strArray.Count() == 6 && strArray[5].Equals("PASSIVE") && strArray[3].Equals("WATER") && strArray[4].Equals("PHASE"))
                        {
                            DataRow[] drTracer = dtTracerJH.Select("trace = '" + strArray[2] + "'");
                            {
                                if (drTracer.Count() > 0)
                                {
                                    strTracer = drTracer[0]["smjh"].ToString();
                                }
                            }
                        }


                        if (((strArray.Count() == 11) && strArray[3].Equals("PROD")) || ((strArray.Count() == 11) && strArray[3].Equals("WINJ")) || ((strArray.Count() == 10) && strArray[0].Equals("BLOCK")))
                        {
                            if ((strArray.Count() == 11) && strArray[3].Equals("PROD"))
                            {
                                isWater = false;
                            }
                            else if ((strArray.Count() == 11) && strArray[3].Equals("WINJ"))
                            {
                                isWater = true;
                            }
                            if (!strArray[0].Equals("BLOCK"))
                            {
                                strJH = strArray[0];
                            }
                            isWell = true;
                            while (isWell)
                            {
                                strArray = Regex.Split(trim, @"\s+");
                                if (strArray[0].Equals("BLOCK"))
                                {
                                    if (isWater)
                                    {
                                        /*
                                         * if (!strArray[4].Equals("SHUT"))
                                         * {
                                         *  //if (Convert.ToDouble(strArray[4]) > 0)
                                         *  //{
                                         *  DataRow drTracer = dtTracer.NewRow();
                                         *  drTracer["jhy"] = "";
                                         *  drTracer["jhs"] = strJH;
                                         *
                                         *  drTracer["mncs"] = Convert.ToDouble(strArray[4]);
                                         *  drTracer["szj"] = strTracer;
                                         *  drTracer["szjnd"] = Convert.ToDouble(strArray[7]);
                                         *  drTracer["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM");
                                         *  drTracer["x"] = Convert.ToInt32(strArray[1]);
                                         *  drTracer["y"] = Convert.ToInt32(strArray[2]);
                                         *  drTracer["k"] = Convert.ToInt32(strArray[3]);
                                         *  dtTracer.Rows.Add(drTracer);
                                         *  // }
                                         * }
                                         * else
                                         * {
                                         *  DataRow drTracer = dtTracer.NewRow();
                                         *  drTracer["jhy"] = "";
                                         *  drTracer["jhs"] = strJH;
                                         *
                                         *  drTracer["mncs"] = Convert.ToDouble(strArray[5]);
                                         *  drTracer["szj"] = strTracer;
                                         *  drTracer["szjnd"] = Convert.ToDouble(strArray[8]);
                                         *  drTracer["ny"] = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM");
                                         *  drTracer["x"] = Convert.ToInt32(strArray[1]);
                                         *  drTracer["y"] = Convert.ToInt32(strArray[2]);
                                         *  drTracer["k"] = Convert.ToInt32(strArray[3]);
                                         *  dtTracer.Rows.Add(drTracer);
                                         * }
                                         */
                                    }

                                    else

                                    {
                                        if (!strArray[4].Equals("SHUT"))
                                        {
                                            //if (Convert.ToDouble(strArray[5]) > 0)
                                            //{
                                            DataRow drTracer = dtTracer.NewRow();
                                            drTracer["jhy"] = strJH;
                                            drTracer["jhs"] = "";

                                            drTracer["mncs"]  = Convert.ToDouble(strArray[5]);
                                            drTracer["szj"]   = strTracer;
                                            drTracer["szjnd"] = Convert.ToDouble(strArray[7]);
                                            drTracer["ny"]    = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM");
                                            drTracer["x"]     = Convert.ToInt32(strArray[1]);
                                            drTracer["y"]     = Convert.ToInt32(strArray[2]);
                                            drTracer["k"]     = Convert.ToInt32(strArray[3]);
                                            dtTracer.Rows.Add(drTracer);
                                            //}
                                        }
                                        else
                                        {
                                            DataRow drTracer = dtTracer.NewRow();
                                            drTracer["jhy"] = strJH;
                                            drTracer["jhs"] = "";

                                            drTracer["mncs"]  = Convert.ToDouble(strArray[6]);
                                            drTracer["szj"]   = strTracer;
                                            drTracer["szjnd"] = Convert.ToDouble(strArray[8]);
                                            drTracer["ny"]    = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM");
                                            drTracer["x"]     = Convert.ToInt32(strArray[1]);
                                            drTracer["y"]     = Convert.ToInt32(strArray[2]);
                                            drTracer["k"]     = Convert.ToInt32(strArray[3]);
                                            dtTracer.Rows.Add(drTracer);
                                        }
                                    }

                                    strReadLine = sr.ReadLine();
                                    if (strReadLine != null)
                                    {
                                        strReadLine = strReadLine.Replace(":", " ").Replace(",", " ");
                                        trim        = strReadLine.Trim();
                                    }
                                }

                                else
                                {
                                    isWell = false;
                                }
                            }
                        }

                        else
                        {
                            if (trim.Equals("INJECTION  REPORT"))
                            {
                                isRead  = true;
                                isWater = true;
                            }
                            else if (trim.Equals("PRODUCTION REPORT"))
                            {
                                isRead  = true;
                                isWater = false;
                            }
                            else if (trim.Equals("CUMULATIVE PRODUCTION/INJECTION TOTALS"))
                            {
                                isRead = false;
                            }

                            if (isRead)
                            {
                                trim = strReadLine.Trim();

                                strArray = Regex.Split(trim, @"\s+");
                                if (isWater)
                                {
                                    if ((strArray.Count() >= 12) && (strArray.Count() <= 13))
                                    {
                                        if (strArray.Count() == 12 || strArray[4].Equals("SHUT"))
                                        {
                                            if (strArray[0].Length > 0)
                                            {
                                                if (!strArray[0].Equals("BLOCK"))
                                                {
                                                    strJH = strArray[0];
                                                }
                                                isWell = true;
                                                if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT"))
                                                {
                                                    isWell = false;
                                                }
                                                while (isWell)
                                                {
                                                    strArray = Regex.Split(trim, @"\s+");
                                                    if (strArray[0].Equals("BLOCK"))
                                                    {
                                                        if (!strArray[4].Equals("SHUT"))
                                                        {
                                                            DataRow drWater = dtWater.NewRow();
                                                            drWater["jh"] = strJH;
                                                            if (Convert.ToDouble(strArray[5]) < 0)
                                                            {
                                                                drWater["rzsl"] = 0;
                                                            }
                                                            else
                                                            {
                                                                drWater["rzsl"] = Convert.ToDouble(strArray[5]);
                                                            }
                                                            drWater["ny"]  = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM");
                                                            drWater["x"]   = Convert.ToInt32(strArray[1]);
                                                            drWater["y"]   = Convert.ToInt32(strArray[2]);
                                                            drWater["bhp"] = Convert.ToDouble(strArray[8]);
                                                            drWater["k"]   = Convert.ToInt32(strArray[3]);
                                                            dtWater.Rows.Add(drWater);
                                                        }
                                                        strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                                                        trim        = strReadLine.Trim();
                                                    }

                                                    else
                                                    {
                                                        isWell = false;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    if (strArray.Count() >= 16)
                                    {
                                        if (strArray.Count() == 16 || strArray[4].Equals("SHUT"))
                                        {
                                            if (strArray[0].Length > 0)
                                            {
                                                if (!strArray[0].Equals("BLOCK"))
                                                {
                                                    strJH = strArray[0];
                                                }
                                                isWell = true;
                                                if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT"))
                                                {
                                                    isWell = false;
                                                }
                                                while (isWell)
                                                {
                                                    strArray = Regex.Split(trim, @"\s+");
                                                    if (strArray[0].Equals("BLOCK"))
                                                    {
                                                        if (!strArray[4].Equals("SHUT"))
                                                        {
                                                            DataRow drOil = dtOil.NewRow();
                                                            drOil["jh"] = strJH;
                                                            if (Convert.ToDouble(strArray[7]) < 0)
                                                            {
                                                                drOil["rcyl1"] = 0;
                                                            }
                                                            else
                                                            {
                                                                drOil["rcyl1"] = Convert.ToDouble(strArray[7]);
                                                            }
                                                            drOil["hs"]   = Convert.ToDouble(strArray[8]);
                                                            drOil["rcsl"] = Convert.ToDouble(strArray[8]) * Convert.ToDouble(drOil["rcyl1"]);
                                                            drOil["rcyl"] = Convert.ToDouble(drOil["rcyl1"]) * (1 - Convert.ToDouble(strArray[8]));
                                                            drOil["ny"]   = du.TextDateStringCovertToDateTime(strDate).ToString("yyyyMM");
                                                            drOil["x"]    = Convert.ToInt32(strArray[1]);
                                                            drOil["y"]    = Convert.ToInt32(strArray[2]);
                                                            drOil["bhp"]  = Convert.ToDouble(strArray[11]);
                                                            drOil["k"]    = Convert.ToInt32(strArray[3]);
                                                            dtOil.Rows.Add(drOil);
                                                        }
                                                        strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                                                        trim        = strReadLine.Trim();
                                                    }
                                                    else
                                                    {
                                                        isWell = false;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    strReadLine = sr.ReadLine();
                    if (strReadLine != null)
                    {
                        strReadLine = strReadLine.Replace(":", " ").Replace(",", " ");
                    }
                    //break;
                }



                ConnDatabaseUtil cdu = new ConnDatabaseUtil();

                string strTableName = "T_WELL_OIL";

                string    strSQL  = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'";
                DataTable dtExist = cdu.SelectDatabase(strSQL);
                if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0)
                {
                    strSQL = "drop table " + strTableName.ToUpper();
                    cdu.CreateOrDeleteDatabase(strSQL);
                }
                strSQL = "create table " + strTableName.ToUpper() + " (jh    VARCHAR2(16),  ny VARCHAR2(6),  x     NUMBER(3),  y     NUMBER(3),  k     NUMBER(2),  rcsl  NUMBER(17, 2),  rcyl  NUMBER(17, 2),  rcyl1 NUMBER(17, 2),  hs    NUMBER(17, 3),  bhp   NUMBER(17, 2))";
                cdu.CreateOrDeleteDatabase(strSQL);
                cdu.InsertDatabase(dtOil, strTableName.ToUpper());



                strTableName = "T_WELL_WATER";

                strSQL  = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'";
                dtExist = cdu.SelectDatabase(strSQL);
                if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0)
                {
                    strSQL = "drop table " + strTableName.ToUpper();
                    cdu.CreateOrDeleteDatabase(strSQL);
                }
                strSQL = "create table " + strTableName.ToUpper() + " (jh    VARCHAR2(16),  ny VARCHAR2(6),  x     NUMBER(3),  y     NUMBER(3),  k     NUMBER(2),  rzsl  NUMBER(17, 2),  bhp   NUMBER(17, 2))";
                cdu.CreateOrDeleteDatabase(strSQL);
                cdu.InsertDatabase(dtWater, strTableName.ToUpper());

                strTableName = "T_WELL_TRACER";

                strSQL  = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'";
                dtExist = cdu.SelectDatabase(strSQL);
                if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0)
                {
                    strSQL = "drop table " + strTableName.ToUpper();
                    cdu.CreateOrDeleteDatabase(strSQL);
                }
                strSQL = "create table " + strTableName.ToUpper() + " (jhy    VARCHAR2(16), jhs    VARCHAR2(16),szj    VARCHAR2(16), szjnd  NUMBER(17, 5), ny VARCHAR2(6),  x     NUMBER(3),  y     NUMBER(3),  k     NUMBER(2),  mncs  NUMBER(17, 2))";
                cdu.CreateOrDeleteDatabase(strSQL);
                cdu.InsertDatabase(dtTracer, strTableName.ToUpper());
            }
            catch (Exception)
            {
            }
            finally
            {
                sr.Close();
                fs.Close();
            }
        }
        public void get()
        {
            List <ResultModel> lstRm = new List <ResultModel>();

            dtResult = ListToDataTableUtil.ListToDataTable(lstRm);
            DataTable dtYJ = cdu.SelectDatabase("select a.jh, a.k, (a.rcyl-b.rcyl) cz from yj a, yj b where a.ny='201412' and b.ny = '201509' and a.jh = b.jh and a.k = b.k and(a.rcyl-b.rcyl)> 0 and a.jh in ('G147-50','G153-543','N1-D1-140','Z9-B42','Z10-B039','Z80-S247','Z80-S249','Z82-246','Z82-S257','Z91-25','Z91-S246','Z91-S22','Z10-B139','Z92-S255','ZD9-39','ZD9-40','ZD9-141','ZD-S137','ZD10-40','ZD10-S37','ZD10-S42','ZD10-S143')");
            DataTable dtNY = cdu.SelectDatabase("select distinct ny from yj where ny >='201412' order by ny");

            for (int m = 0; m < dtNY.Rows.Count; m++)
            {
                for (int i = 0; i < dtYJ.Rows.Count; i++)
                {
                    DataTable dtSJYJH = cdu.SelectDatabase("select * from dyjh where smjh = '" + dtYJ.Rows[i]["jh"] + "'");
                    if (dtSJYJH.Rows.Count > 0)
                    {
                        DataTable dtLtjhs = cdu.SelectDatabase("select * from ltk where jh = '" + dtSJYJH.Rows[0]["sjjh"] + "'");
                        if (dtLtjhs.Rows.Count > 0)
                        {
                            int dbjs = Convert.ToInt32(dtLtjhs.Rows[0]["dbjs"]);
                            for (int j = 1; j <= dbjs; j++)
                            {
                                DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'");
                                if (dtSMSJH.Rows.Count > 0)
                                {
                                    DataTable dtZSL = cdu.SelectDatabase("select jh, ny, k, rzsl from sj where jh= '" + dtSMSJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "' and K = " + dtYJ.Rows[i]["K"]);
                                    if (dtZSL.Rows.Count > 0)
                                    {
                                        //dblSumRcyl += Convert.ToDouble(dtSum.Rows[0]["rcyl"]);
                                        //dblSumRcsl += Convert.ToDouble(dtSum.Rows[0]["rcsl"]);

                                        DataRow drResult = dtResult.NewRow();
                                        drResult["油井"]  = dtYJ.Rows[i]["jh"];
                                        drResult["水井"]  = dtSMSJH.Rows[0]["smjh"];
                                        drResult["日期"]  = dtNY.Rows[m]["ny"];
                                        drResult["层位"]  = dtYJ.Rows[i]["K"];
                                        drResult["注入量"] = dtZSL.Rows[0]["rzsl"];

                                        dtResult.Rows.Add(drResult);
                                    }
                                }
                            }
                        }
                        else
                        {
                            for (int j = 1; j <= connNumber; j++)
                            {
                                string strColumnName = "DBJH" + j;
                                dtLtjhs = cdu.SelectDatabase("select * from LTK where " + strColumnName + " = '" + dtSJYJH.Rows[0]["sjjh"] + "'");
                                foreach (DataRow drLtjhs in dtLtjhs.Rows)
                                {
                                    DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + drLtjhs["jh"] + "'");
                                    if (dtSMSJH.Rows.Count > 0)
                                    {
                                        DataTable dtZSL = cdu.SelectDatabase("select jh, ny, k, rzsl from sj where jh= '" + dtSMSJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "' and K = " + dtYJ.Rows[i]["K"]);
                                        if (dtZSL.Rows.Count > 0)
                                        {
                                            DataRow drResult = dtResult.NewRow();
                                            drResult["油井"]  = dtYJ.Rows[i]["jh"];
                                            drResult["水井"]  = dtSMSJH.Rows[0]["smjh"];
                                            drResult["日期"]  = dtNY.Rows[m]["ny"];
                                            drResult["层位"]  = dtYJ.Rows[i]["K"];
                                            drResult["注入量"] = dtZSL.Rows[0]["rzsl"];

                                            dtResult.Rows.Add(drResult);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        public void GetLTOil()
        {
            List <ResultModel> lstRm = new List <ResultModel>();

            dtResult = ListToDataTableUtil.ListToDataTable(lstRm);
            double    dblHs      = 0;
            double    dblSumRcyl = 0;
            double    dblSumRcsl = 0;
            DataTable dtNY       = cdu.SelectDatabase("select distinct ny from yj where ny >='201412' order by ny");

            for (int m = 0; m < dtNY.Rows.Count; m++)
            {
                DataTable dtWaterJH = cdu.SelectDatabase("select distinct jh from sj where ny = '" + dtNY.Rows[m]["ny"] + "'");
                for (int i = 0; i < dtWaterJH.Rows.Count; i++)
                {
                    DataTable dtSJSJH = cdu.SelectDatabase("select * from dyjh where smjh = '" + dtWaterJH.Rows[i]["jh"] + "'");
                    if (dtSJSJH.Rows.Count > 0)
                    {
                        DataTable dtLtjhy = cdu.SelectDatabase("select * from ltk where jh = '" + dtSJSJH.Rows[0]["sjjh"] + "'");
                        if (dtLtjhy.Rows.Count > 0)
                        {
                            int dbjs = Convert.ToInt32(dtLtjhy.Rows[0]["dbjs"]);
                            for (int j = 1; j <= dbjs; j++)
                            {
                                DataTable dtSMYJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtLtjhy.Rows[0]["dbjh" + j] + "'");
                                if (dtSMYJH.Rows.Count > 0)
                                {
                                    DataTable dtSum = cdu.SelectDatabase("select jh, ny, sum(rcyl) as rcyl, sum(rcsl) as rcsl from YJ t group by jh, ny having jh= '" + dtSMYJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "'");
                                    if (dtSum.Rows.Count > 0)
                                    {
                                        //dblSumRcyl += Convert.ToDouble(dtSum.Rows[0]["rcyl"]);
                                        //dblSumRcsl += Convert.ToDouble(dtSum.Rows[0]["rcsl"]);
                                        dblSumRcyl = Convert.ToDouble(dtSum.Rows[0]["rcyl"]);
                                        dblSumRcsl = Convert.ToDouble(dtSum.Rows[0]["rcsl"]);
                                        if ((dblSumRcsl + dblSumRcyl) != 0)
                                        {
                                            dblHs = dblSumRcsl / (dblSumRcsl + dblSumRcyl);
                                        }
                                        else
                                        {
                                            dblHs = 0;
                                        }
                                        DataRow drResult = dtResult.NewRow();
                                        drResult["油井"] = dtSMYJH.Rows[0]["smjh"];
                                        drResult["水井"] = dtWaterJH.Rows[i]["jh"];
                                        drResult["日期"] = dtNY.Rows[m]["ny"];
                                        drResult["产油"] = dblSumRcyl;
                                        drResult["含水"] = dblHs;
                                        drResult["产液"] = dblSumRcsl + dblSumRcyl;

                                        dtResult.Rows.Add(drResult);
                                        dblSumRcsl = 0;
                                        dblSumRcyl = 0;
                                    }
                                }
                            }
                        }
                        else
                        {
                            for (int j = 1; j <= connNumber; j++)
                            {
                                string strColumnName = "DBJH" + j;
                                dtLtjhy = cdu.SelectDatabase("select * from LTK where " + strColumnName + " = '" + dtSJSJH.Rows[0]["sjjh"] + "'");
                                foreach (DataRow drLtjhy in dtLtjhy.Rows)
                                {
                                    DataTable dtSMYJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + drLtjhy["jh"] + "'");
                                    if (dtSMYJH.Rows.Count > 0)
                                    {
                                        DataTable dtSum = cdu.SelectDatabase("select jh, ny, sum(rcyl) as rcyl, sum(rcsl) as rcsl from YJ t group by jh, ny having jh= '" + dtSMYJH.Rows[0]["smjh"] + "' and ny = '" + dtNY.Rows[m]["ny"] + "'");
                                        if (dtSum.Rows.Count > 0)
                                        {
                                            //dblSumRcyl += Convert.ToDouble(dtSum.Rows[0]["rcyl"]);
                                            //dblSumRcsl += Convert.ToDouble(dtSum.Rows[0]["rcsl"]);
                                            dblSumRcyl = Convert.ToDouble(dtSum.Rows[0]["rcyl"]);
                                            dblSumRcsl = Convert.ToDouble(dtSum.Rows[0]["rcsl"]);
                                            if ((dblSumRcsl + dblSumRcyl) != 0)
                                            {
                                                dblHs = dblSumRcsl / (dblSumRcsl + dblSumRcyl);
                                            }
                                            else
                                            {
                                                dblHs = 0;
                                            }
                                            DataRow drResult = dtResult.NewRow();
                                            drResult["水井"] = dtWaterJH.Rows[i]["jh"];
                                            drResult["油井"] = dtSMYJH.Rows[0]["smjh"];
                                            drResult["日期"] = dtNY.Rows[m]["ny"];
                                            drResult["产油"] = dblSumRcyl;
                                            drResult["含水"] = dblHs;
                                            drResult["产液"] = dblSumRcsl + dblSumRcyl;

                                            dtResult.Rows.Add(drResult);
                                            dblSumRcsl = 0;
                                            dblSumRcyl = 0;
                                        }
                                    }
                                }
                            }
                        }


                        dblSumRcsl = 0;
                        dblSumRcyl = 0;
                    }
                }
            }
        }
        public void GetLTJInf(string strDate)
        {
            DataTable          dtOil   = new DataTable();
            DataTable          dtWater = new DataTable();
            List <ResultModel> lstRm   = new List <ResultModel>();

            dtResult = ListToDataTableUtil.ListToDataTable(lstRm);

            dtOil = cdu.SelectDatabase("select * from yjjh");
            for (int i = 0; i < dtOil.Rows.Count; i++)
            {
                //DataTable dtSMYJH = ConnDatabaseUtil.SelectDBF("select * from 井号 where 实际井号 = '" + dtOil.Rows[i]["jh"] + "'");
                DataTable dtSMYJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtOil.Rows[i]["jh"] + "'");
                if (dtSMYJH.Rows.Count > 0)
                {
                    DataRow[] drJHY = LocationDAL.dtSK.Select("jh = '" + dtSMYJH.Rows[0]["smjh"] + "'");

                    foreach (DataRow dr in drJHY)
                    {
                        DataTable dtLtjhs = cdu.SelectDatabase("select * from ltk where jh = '" + dtOil.Rows[i]["jh"] + "'");
                        if (dtLtjhs.Rows.Count > 0)
                        {
                            int dbjs = Convert.ToInt32(dtLtjhs.Rows[0]["dbjs"]);
                            for (int j = 1; j <= dbjs; j++)
                            {
                                DataTable dtIsSJ = cdu.SelectDatabase("select * from sjjh where jh = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'");
                                if (dtIsSJ.Rows.Count > 0)
                                {
                                    //DataTable dtSMSJH = ConnDatabaseUtil.SelectDBF("select * from 井号 where 实际井号 = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'");
                                    DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + dtLtjhs.Rows[0]["dbjh" + j] + "'");
                                    if (dtSMSJH.Rows.Count > 0)
                                    {
                                        WellModel jhs = ld.GetSingleLocation(dtSMSJH.Rows[0]["smjh"].ToString(), Convert.ToInt32(dr["k"]));
                                        GetLTOilJH(jhs, strDate, dtLtjhs.Rows[0]["dbjh" + j].ToString());
                                    }
                                }
                            }
                        }
                        else
                        {
                            for (int j = 1; j <= connNumber; j++)
                            {
                                string strColumnName = "DBJH" + j;
                                dtLtjhs = cdu.SelectDatabase("select * from LTK where " + strColumnName + " = '" + dtOil.Rows[i]["jh"] + "'");
                                foreach (DataRow drLtjhs in dtLtjhs.Rows)
                                {
                                    DataTable dtIsSJ = cdu.SelectDatabase("select * from sjjh where jh = '" + drLtjhs["jh"] + "'");
                                    if (dtIsSJ.Rows.Count > 0)
                                    {
                                        //DataTable dtSMSJH = ConnDatabaseUtil.SelectDBF("select * from 井号 where 实际井号 = '" + drLtjhs["jh"] + "'");
                                        DataTable dtSMSJH = cdu.SelectDatabase("select * from dyjh where sjjh = '" + drLtjhs["jh"] + "'");
                                        if (dtSMSJH.Rows.Count > 0)
                                        {
                                            WellModel jhs = ld.GetSingleLocation(dtSMSJH.Rows[0]["smjh"].ToString(), Convert.ToInt32(dr["k"]));
                                            GetLTOilJH(jhs, strDate, drLtjhs["jh"].ToString());
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                GC.Collect();
            }


            try
            {
                ConnDatabaseUtil cdu = new ConnDatabaseUtil();

                string strTableName = "T_WELL_ENDFACTOR";

                string    strSQL  = "select count(*) as count from user_tables where table_name = '" + strTableName.ToUpper() + "'";
                DataTable dtExist = cdu.SelectDatabase(strSQL);
                if (Convert.ToInt32(dtExist.Rows[0]["Count"]) > 0)
                {
                    strSQL = "drop table " + strTableName.ToUpper();
                    cdu.CreateOrDeleteDatabase(strSQL);
                }
                strSQL = "create table " + strTableName.ToUpper() + " (油井    VARCHAR2(16),  日期 VARCHAR2(6),  层位    NUMBER(2),  水井 VARCHAR2(16),  平均剩余储量  NUMBER(17, 10),  平均圧力 NUMBER(17, 10),  平均含油饱和度    NUMBER(17, 10))";
                cdu.CreateOrDeleteDatabase(strSQL);
                cdu.InsertDatabase(dtResult, strTableName.ToUpper());
            }
            catch (Exception)
            {
            }
        }
Beispiel #11
0
        public void GetTracer(string strPath, string strTrace)
        {
            GetTraceJH gtj = new GetTraceJH();

            DataTable dtTracerJH = gtj.GetTraceJHMethod(strTrace);

            DateUtil du           = new DateUtil();
            string   strStartDate = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strStartDate), "yyyyMM", null));
            string   strEndDate   = du.DateTimeCovertToString(DateTime.ParseExact((MainForm.strEndDate), "yyyyMM", null).AddMonths(1));

            string       strReadLine;
            string       strJH     = string.Empty;
            string       strDate   = string.Empty;
            string       strTracer = string.Empty;
            bool         isWell    = false;
            bool         isRead    = false;
            bool         isWater   = false;
            bool         isDate    = false;
            FileStream   fs        = new FileStream(strPath, FileMode.Open);
            StreamReader sr        = new StreamReader(fs);

            WellModel        wm;
            List <WellModel> lstWM     = new List <WellModel>();
            List <WellModel> lstOilM   = new List <WellModel>();
            List <WellModel> lstWaterM = new List <WellModel>();

            strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
            string trim = strReadLine.Trim();

            while (strReadLine != null)
            {
                trim = strReadLine.Trim();

                string[] strArray = Regex.Split(trim, @"\s+");

                if (((strArray.Length == 12) && (strArray[0].Equals("STEP")) && (strArray[8].Equals("REPT"))) || ((strArray.Length == 11) && (strArray[0].Equals("STEP")) && (strArray[7].Equals("REPT"))))
                {
                    strDate = strArray[strArray.Length - 1];

                    if (strDate.Equals(strStartDate))
                    {
                        isDate = true;
                    }
                    if (strDate.Equals(strEndDate))
                    {
                        isDate = false;
                        break;
                    }
                }
                if (isDate)
                {
                    if (strArray[0].Equals("TRACER") && strArray.Count() == 6 && strArray[5].Equals("PASSIVE") && strArray[3].Equals("WATER") && strArray[4].Equals("PHASE"))
                    {
                        DataRow[] drTracer = dtTracerJH.Select("trace = '" + strArray[2] + "'");
                        {
                            if (drTracer.Count() > 0)
                            {
                                strTracer = drTracer[0]["smjh"].ToString();
                            }
                        }
                    }


                    if (((strArray.Count() == 11) && strArray[3].Equals("PROD")) || ((strArray.Count() == 11) && strArray[3].Equals("WINJ")) || ((strArray.Count() == 10) && strArray[0].Equals("BLOCK")))
                    {
                        if ((strArray.Count() == 11) && strArray[3].Equals("PROD"))
                        {
                            isWater = false;
                        }
                        else if ((strArray.Count() == 11) && strArray[3].Equals("WINJ"))
                        {
                            isWater = true;
                        }
                        if (!strArray[0].Equals("BLOCK"))
                        {
                            strJH = strArray[0];
                        }
                        isWell = true;
                        while (isWell)
                        {
                            strArray = Regex.Split(trim, @"\s+");
                            if (strArray[0].Equals("BLOCK"))
                            {
                                wm = new WellModel();

                                if (isWater)
                                {
                                    if (!strArray[4].Equals("SHUT"))
                                    {
                                        if (Convert.ToDouble(strArray[4]) > 0)
                                        {
                                            wm.jhy    = "";
                                            wm.jhs    = strJH;
                                            wm.mncs   = Convert.ToDouble(strArray[4]);
                                            wm.szj    = strTracer;
                                            wm.szjnd  = Convert.ToDouble(strArray[7]);
                                            wm.date   = strDate;
                                            wm.dtDate = du.TextDateStringCovertToDateTime(strDate);
                                            wm.x      = Convert.ToInt32(strArray[1]);
                                            wm.y      = Convert.ToInt32(strArray[2]);
                                            wm.k      = Convert.ToInt32(strArray[3]);
                                            lstWM.Add(wm);
                                        }
                                    }
                                }
                                else
                                {
                                    if (!strArray[4].Equals("SHUT"))
                                    {
                                        if (Convert.ToDouble(strArray[5]) > 0)
                                        {
                                            wm.jhy    = strJH;
                                            wm.jhs    = "";
                                            wm.mncs   = Convert.ToDouble(strArray[5]);
                                            wm.szj    = strTracer;
                                            wm.szjnd  = Convert.ToDouble(strArray[7]);
                                            wm.date   = strDate;
                                            wm.dtDate = du.TextDateStringCovertToDateTime(strDate);
                                            wm.x      = Convert.ToInt32(strArray[1]);
                                            wm.y      = Convert.ToInt32(strArray[2]);
                                            wm.k      = Convert.ToInt32(strArray[3]);
                                            lstWM.Add(wm);
                                        }
                                    }
                                }

                                strReadLine = sr.ReadLine();
                                if (strReadLine != null)
                                {
                                    strReadLine = strReadLine.Replace(":", " ").Replace(",", " ");
                                    trim        = strReadLine.Trim();
                                }
                            }

                            else
                            {
                                isWell = false;
                            }
                        }
                    }
                    else
                    {
                        if (trim.Equals("INJECTION  REPORT"))
                        {
                            isRead  = true;
                            isWater = true;
                        }
                        else if (trim.Equals("PRODUCTION REPORT"))
                        {
                            isRead  = true;
                            isWater = false;
                        }
                        else if (trim.Equals("CUMULATIVE PRODUCTION/INJECTION TOTALS"))
                        {
                            isRead = false;
                        }

                        if (isRead)
                        {
                            trim = strReadLine.Trim();

                            strArray = Regex.Split(trim, @"\s+");
                            if (isWater)
                            {
                                if ((strArray.Count() >= 12) && (strArray.Count() <= 13))
                                {
                                    if (strArray.Count() == 12 || strArray[4].Equals("SHUT"))
                                    {
                                        if (strArray[0].Length > 0)
                                        {
                                            if (!strArray[0].Equals("BLOCK"))
                                            {
                                                strJH = strArray[0];
                                            }
                                            isWell = true;
                                            if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT"))
                                            {
                                                isWell = false;
                                            }
                                            while (isWell)
                                            {
                                                strArray = Regex.Split(trim, @"\s+");
                                                if (strArray[0].Equals("BLOCK"))
                                                {
                                                    if (!strArray[4].Equals("SHUT"))
                                                    {
                                                        wm        = new WellModel();
                                                        wm.date   = strDate;
                                                        wm.dtDate = du.TextDateStringCovertToDateTime(strDate);
                                                        wm.jhs    = strJH;
                                                        wm.x      = Convert.ToInt32(strArray[1]);
                                                        wm.y      = Convert.ToInt32(strArray[2]);
                                                        wm.k      = Convert.ToInt32(strArray[3]);
                                                        if (Convert.ToDouble(strArray[5]) > 0)
                                                        {
                                                            wm.mncs = Convert.ToDouble(strArray[5]);
                                                            lstWaterM.Add(wm);
                                                        }
                                                    }
                                                    strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                                                    trim        = strReadLine.Trim();
                                                }

                                                else
                                                {
                                                    isWell = false;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else
                            {
                                if (strArray.Count() >= 16)
                                {
                                    if (strArray.Count() == 16 || strArray[4].Equals("SHUT"))
                                    {
                                        if (strArray[0].Length > 0)
                                        {
                                            if (!strArray[0].Equals("BLOCK"))
                                            {
                                                strJH = strArray[0];
                                            }
                                            isWell = true;
                                            if (strArray[1].Equals("GROUP") || strArray[0].Equals("REPORT"))
                                            {
                                                isWell = false;
                                            }
                                            while (isWell)
                                            {
                                                strArray = Regex.Split(trim, @"\s+");
                                                if (strArray[0].Equals("BLOCK"))
                                                {
                                                    if (!strArray[4].Equals("SHUT"))
                                                    {
                                                        wm        = new WellModel();
                                                        wm.date   = strDate;
                                                        wm.dtDate = du.TextDateStringCovertToDateTime(strDate);
                                                        wm.jhy    = strJH;
                                                        wm.x      = Convert.ToInt32(strArray[1]);
                                                        wm.y      = Convert.ToInt32(strArray[2]);
                                                        wm.k      = Convert.ToInt32(strArray[3]);
                                                        if (Convert.ToDouble(strArray[5]) < 0)
                                                        {
                                                            wm.mncs = 0;
                                                        }
                                                        else
                                                        {
                                                            wm.mncs = Convert.ToDouble(strArray[5]);
                                                        }

                                                        if (Convert.ToDouble(strArray[4]) > 0)
                                                        {
                                                            wm.mncy  = Convert.ToDouble(strArray[4]);
                                                            wm.mncye = wm.mncy + wm.mncs;
                                                            lstOilM.Add(wm);
                                                        }
                                                    }
                                                    strReadLine = sr.ReadLine().Replace(":", " ").Replace(",", " ");
                                                    trim        = strReadLine.Trim();
                                                }
                                                else
                                                {
                                                    isWell = false;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                strReadLine = sr.ReadLine();
                if (strReadLine != null)
                {
                    strReadLine = strReadLine.Replace(":", " ").Replace(",", " ");
                }
                //break;
            }

            dtTracer.Merge(ListToDataTableUtil.ListToDataTable(lstWM));
            dtOil   = ListToDataTableUtil.ListToDataTable(lstOilM);
            dtWater = ListToDataTableUtil.ListToDataTable(lstWaterM);

            sr.Close();
            fs.Close();;
        }