示例#1
0
        public static bool StartFind(string path, string finame)
        {
            bool           result = true;
            int            i      = 0;
            string         line;
            List <ECSales> ecSales     = new List <ECSales>();
            List <ECSales> ErroecSales = new List <ECSales>();
            ECSales        ecSale      = new ECSales();

            try
            {
                Common.WriteLog("開始切割 " + finame);
                FileStream fileStream = File.OpenRead(path);
                using (StreamReader reader = new StreamReader(fileStream, Encoding.GetEncoding(0)))
                //using (StreamReader reader = new StreamReader(fileStream, Encoding.Default))
                {
                    line = reader.ReadLine();
                    while (line != null)
                    {
                        i++;
                        if (i == 1)
                        {
                            line = reader.ReadLine();
                        }
                        line = new Regex("[\\s]+").Replace(line, " ");
                        if (line == " " || line == "")
                        {
                            line = reader.ReadLine();
                            continue;
                        }
                        splitstrng(line, i);


                        line = reader.ReadLine();
                    }

                    reader.Close();
                }

                Common.WriteLog(finame + "切割完成,一共 " + i + " 筆");

                return(result);
            }
            catch (Exception e)
            {
                Common.WriteLog("EC_DetailServices失敗");
                Common.WriteLog(e.ToString());
                result = false;
                return(result);
            }
        }
示例#2
0
        //切割字串
        public static ECSales splitstrng(string input, int i)
        {
            ECSales ecSales = new ECSales();

            try
            {
                //切割符號
                //string mark = ConfigurationManager.AppSettings["Mark"];
                input = new Regex("[\\s]+").Replace(input, " ");

                //string[] sArray = Regex.Split(input, @"|");
                string[] sArray = null;
                sArray = input.Split('|');


                string SalesQty     = "";
                string SalesPrice   = "";
                string SalesQtyUnit = "";
                string SalesAmt     = "";
                string PaymentBy    = "";
                if (sArray.Length < 26)
                {
                    //Console.WriteLine(input);
                    //Console.WriteLine("第 " + i + " 行");
                    Common.WriteLog("切割失敗 " + input + " ");
                    Common.WriteLog("第 " + i + " 行");

                    return(ecSales);
                }
                if (sArray.Length < 27 && int.TryParse(sArray[22], out i) == false)
                {
                    PaymentBy = sArray[16];
                    //SalesQty = sArray[22].Substring(sArray[22].Length-1,1);
                    SalesQty     = "ERRO";
                    SalesPrice   = sArray[23];
                    SalesQtyUnit = sArray[24];
                    SalesAmt     = sArray[25];

                    ecSales = new ECSales
                    {
                        Store              = sArray[0],
                        StoreCName         = sArray[1],
                        StoreZIP           = sArray[2],
                        OrderDate          = sArray[3],
                        OrderNo            = sArray[4],
                        Media              = sArray[5],
                        DeliveryDate       = sArray[6],
                        InvoiceDate        = sArray[7],
                        InvoiceDate_Actual = sArray[8],
                        DeliveryBy         = sArray[9],
                        OrderStatus        = sArray[10],
                        LogisticStatus     = sArray[11],
                        ZIPCode1           = sArray[12],
                        County             = sArray[13],
                        District           = sArray[14],
                        Address            = sArray[15],
                        PaymentBy          = PaymentBy,
                        PaymentStatus      = sArray[17],
                        OrderAmt           = sArray[18],
                        FullCode           = sArray[19],
                        Unit         = sArray[20],
                        Input        = sArray[21],
                        ItemCName    = sArray[22],
                        SalesQty     = SalesQty,
                        SalesPrice   = SalesPrice,
                        SalesQtyUnit = SalesQtyUnit,
                        SalesAmt     = SalesAmt
                    };
                }
                else if (int.TryParse(sArray[22], out i))
                {
                    PaymentBy    = "ERRO";
                    SalesQty     = sArray[22];
                    SalesPrice   = sArray[23];
                    SalesQtyUnit = sArray[24];
                    SalesAmt     = sArray[25];

                    ecSales = new ECSales
                    {
                        Store              = sArray[0],
                        StoreCName         = sArray[1],
                        StoreZIP           = sArray[2],
                        OrderDate          = sArray[3],
                        OrderNo            = sArray[4],
                        Media              = sArray[5],
                        DeliveryDate       = sArray[6],
                        InvoiceDate        = sArray[7],
                        InvoiceDate_Actual = sArray[8],
                        DeliveryBy         = sArray[9],
                        OrderStatus        = sArray[10],
                        LogisticStatus     = sArray[11],
                        ZIPCode1           = sArray[12],
                        County             = sArray[13],
                        District           = sArray[14],
                        Address            = sArray[15],
                        PaymentBy          = PaymentBy,
                        PaymentStatus      = sArray[16],
                        OrderAmt           = sArray[17],
                        FullCode           = sArray[18],
                        Unit         = sArray[19],
                        Input        = sArray[20],
                        ItemCName    = sArray[21],
                        SalesQty     = SalesQty,
                        SalesPrice   = SalesPrice,
                        SalesQtyUnit = SalesQtyUnit,
                        SalesAmt     = SalesAmt
                    };
                }
                else
                {
                    PaymentBy    = sArray[16];
                    SalesQty     = sArray[23];
                    SalesPrice   = sArray[24];
                    SalesQtyUnit = sArray[25];
                    SalesAmt     = sArray[26];

                    ecSales = new ECSales
                    {
                        Store              = sArray[0],
                        StoreCName         = sArray[1],
                        StoreZIP           = sArray[2],
                        OrderDate          = sArray[3],
                        OrderNo            = sArray[4],
                        Media              = sArray[5],
                        DeliveryDate       = sArray[6],
                        InvoiceDate        = sArray[7],
                        InvoiceDate_Actual = sArray[8],
                        DeliveryBy         = sArray[9],
                        OrderStatus        = sArray[10],
                        LogisticStatus     = sArray[11],
                        ZIPCode1           = sArray[12],
                        County             = sArray[13],
                        District           = sArray[14],
                        Address            = sArray[15],
                        PaymentBy          = PaymentBy,
                        PaymentStatus      = sArray[17],
                        OrderAmt           = sArray[18],
                        FullCode           = sArray[19],
                        Unit         = sArray[20],
                        Input        = sArray[21],
                        ItemCName    = sArray[22],
                        SalesQty     = SalesQty,
                        SalesPrice   = SalesPrice,
                        SalesQtyUnit = SalesQtyUnit,
                        SalesAmt     = SalesAmt
                    };
                }



                return(ecSales);
            }
            catch (Exception ex)
            {
                Common.WriteLog("切割失敗 " + input + " ");
                Common.WriteLog(ex.ToString());
                return(ecSales);

                throw;
            }
        }
示例#3
0
        //path 完整路徑  finame檔名
        public static bool StartInsert(string path, string finame)
        {
            bool           result = true;
            int            i      = 0;
            string         line;
            List <ECSales> ecSales     = new List <ECSales>();
            List <ECSales> ErroecSales = new List <ECSales>();
            ECSales        ecSale      = new ECSales();

            try
            {
                Common.WriteLog("開始切割 " + finame);
                FileStream fileStream = File.OpenRead(path);

                //using (StreamReader reader = new StreamReader(fileStream, Encoding.Default))
                using (StreamReader reader = new StreamReader(fileStream, Encoding.GetEncoding(0)))
                {
                    line = reader.ReadLine();
                    while (line != null)
                    {
                        i++;
                        if (i == 1)
                        {
                            line = reader.ReadLine();
                        }
                        line = new Regex("[\\s]+").Replace(line, " ");
                        if (line == " " || line == "")
                        {
                            line = reader.ReadLine();
                            continue;
                        }
                        ecSale = splitstrng(line, i);

                        //如果資料沒問題
                        if (ecSale.Address != null && ecSale.Address != "" && ecSale.SalesQty != "ERRO" && ecSale.PaymentBy != "ERRO")
                        {
                            ecSales.Add(ecSale);
                            if (i % 100000 == 0)
                            {
                                result  = InsertToSql(ecSales);
                                ecSales = new List <ECSales>();
                                if (!result)
                                {
                                    return(false);
                                }
                            }
                        }

                        //如果資料有問題
                        if (ecSale.Address != null && ecSale.Address != "" && (ecSale.SalesQty == "ERRO" || ecSale.PaymentBy == "ERRO"))
                        {
                            ErroecSales.Add(ecSale);
                            if (i % 100000 == 0)
                            {
                                result      = InsertToErroSql(ErroecSales);
                                ErroecSales = new List <ECSales>();
                                if (!result)
                                {
                                    return(false);
                                }
                            }
                        }

                        line = reader.ReadLine();
                    }

                    reader.Close();
                }



                Common.WriteLog("新增DB");
                result = InsertToSql(ecSales);

                //如果有資料有問題再INSERT
                if (ErroecSales.Count >= 1)
                {
                    result = InsertToErroSql(ErroecSales);
                }



                Common.WriteLog(finame + "切割完成,一共 " + i + " 筆");

                return(result);
            }
            catch (Exception e)
            {
                Common.WriteLog("EC_DetailServices失敗");
                Common.WriteLog(e.ToString());
                result = false;
                return(result);
            }
        }