編碼分類2020-11-20

編碼分類,代碼比較簡單,就是繁瑣

/// <summary>
        /// 填入模板編碼和數(shù)量
        /// </summary>
        /// <param name="編碼"></param>
        /// <param name="數(shù)量"></param>
        /// <returns>返回:編碼,數(shù)量,模板類型(0和1 0代表標(biāo)準(zhǔn)件,1代表非標(biāo)件)</returns>
        public static string[] 編碼分類算法(string 編碼, string 數(shù)量)
        {
            //這個(gè)方法定義非常廣,企業(yè)的標(biāo)準(zhǔn)不一樣,結(jié)果就不一樣,所以這里用最簡單的方式來決定是不是非標(biāo)件,非標(biāo)件的定義:帶后綴,不帶后綴的為標(biāo)準(zhǔn)件
            //如果需要更復(fù)雜的定義方式,就需要更多更全面的計(jì)算方法了(比如ZW標(biāo)準(zhǔn)定義方式為: 標(biāo)準(zhǔn)件表,所有標(biāo)準(zhǔn)件帶配件,帶孔的都定義為標(biāo)準(zhǔn)件,其他不在標(biāo)準(zhǔn)件表中的為非標(biāo)件)
            //ZW體系有專門的標(biāo)準(zhǔn)件全自動(dòng)化生產(chǎn)線,其他小企業(yè)沒得比,所以暫不討論此方法
            //此分類算法標(biāo)準(zhǔn)為:長寬為50倍數(shù),不帶其他后綴為標(biāo)準(zhǔn)件,其他默認(rèn)為非標(biāo)
            string[] 計(jì)算結(jié)果 = new string[3];
            string[] 錯(cuò)誤結(jié)果 = new string[1];
            String[] 無字母參數(shù);
            String[] 無數(shù)字參數(shù);

            if (編碼 != "" && 數(shù)量 != "")
            {
                //去除編碼中的符號(hào)和字母
                無字母參數(shù) = 編碼.Split(new char[] { '-', 'P', 'J', 'Q', 'C', 'D', 'K', 'L', '/', '(', ')', 'A', 'B', 'E', 'F', 'G', 'H', 'I', 'J', 'M', 'N', 'O', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' }, StringSplitOptions.RemoveEmptyEntries);
                //去除編碼中的數(shù)字
                無數(shù)字參數(shù) = 編碼.Split(new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.' }, StringSplitOptions.RemoveEmptyEntries);
                //去除編碼中的空格,然后轉(zhuǎn)化為string類型
                String 字符串 = String.Join("", 無數(shù)字參數(shù));
                char[] 字符數(shù)組 = 字符串.ToCharArray();//備用,如果需要更精細(xì)的分辨類別需要用到
                switch (字符串)
                {
                    case "P":
                        //平板
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0 && float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "C":
                        //C槽
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 1)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else if (無字母參數(shù).Length == 2)
                        {//這個(gè)判斷麻煩的很,既要判斷參數(shù)是不是50倍數(shù),又要檢測第一個(gè)參數(shù)是不是出于范圍內(nèi)
                            if (float.Parse(無字母參數(shù)[1]) % 50 == 0 && float.Parse(無字母參數(shù)[0]) > 0 && (float.Parse(無字母參數(shù)[0]) < 10 || float.Parse(無字母參數(shù)[0]) == 20))
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;

                    case "D":
                        //飛機(jī)板
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 1)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "N-":
                        //轉(zhuǎn)角C槽
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0 && float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else if (無字母參數(shù).Length == 3)
                        {
                            if (float.Parse(無字母參數(shù)[1]) % 50 == 0 && float.Parse(無字母參數(shù)[2]) % 50 == 0 && float.Parse(無字母參數(shù)[0]) > 0 && (float.Parse(無字母參數(shù)[0]) < 10 || float.Parse(無字母參數(shù)[0]) == 20))
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "DC":
                        //轉(zhuǎn)角C槽
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 1)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[1]) % 50 == 0 && float.Parse(無字母參數(shù)[0]) > 0 && (float.Parse(無字母參數(shù)[0]) < 10 || float.Parse(無字母參數(shù)[0]) == 20))
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "DN-":
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0 && float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else if (無字母參數(shù).Length == 3)
                        {
                            if (float.Parse(無字母參數(shù)[1]) % 50 == 0 && float.Parse(無字母參數(shù)[2]) % 50 == 0 && float.Parse(無字母參數(shù)[0]) > 0 && (float.Parse(無字母參數(shù)[0]) < 10 || float.Parse(無字母參數(shù)[0]) == 20))
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    //轉(zhuǎn)角C槽
                    case "K":
                        //K板
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0 && float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "LTGB":
                        //樓梯蓋板(特殊板只計(jì)算第二個(gè)參數(shù))
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "LTDB":
                        //樓梯擋板同上
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "Z":
                        //支撐
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 0)
                        {
                            計(jì)算結(jié)果[2] = "0";
                        }
                        else if (無字母參數(shù).Length == 1)
                        {
                            if (float.Parse(無字母參數(shù)[0]) == 220)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else if (無字母參數(shù).Length == 2)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0&& float.Parse(無字母參數(shù)[1]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "L":
                        //龍骨
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 1)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    case "S":
                        //龍骨
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        if (無字母參數(shù).Length == 1)
                        {
                            if (float.Parse(無字母參數(shù)[0]) % 50 == 0)
                            {
                                計(jì)算結(jié)果[2] = "0";
                            }
                            else
                            {
                                計(jì)算結(jié)果[2] = "1";
                            }
                        }
                        else
                        {
                            計(jì)算結(jié)果[2] = "1";
                        }
                        return 計(jì)算結(jié)果;
                    default:
                        計(jì)算結(jié)果[0] = 編碼;
                        計(jì)算結(jié)果[1] = 數(shù)量;
                        計(jì)算結(jié)果[2] = "1";
                        return 計(jì)算結(jié)果;
                }
            }
            else
            {
                if (編碼 == "" && 數(shù)量 == "")
                {
                    錯(cuò)誤結(jié)果[0] = "錯(cuò)誤: 編碼數(shù)量都沒有";
                }
                else if (編碼 == "")
                {
                    錯(cuò)誤結(jié)果[0] = "錯(cuò)誤: 編碼沒有";
                }
                else if (數(shù)量 == "")
                {
                    錯(cuò)誤結(jié)果[0] = "錯(cuò)誤: 數(shù)量沒有";
                }
                return 錯(cuò)誤結(jié)果;
            }
        }
//有需要可以直接在case 后邊繼續(xù)添加或修改刪除,自己公司的編碼

結(jié)果:


image.png

還有更多的編碼格式......就不一一舉例了
下一篇,教你怎么從excel中提取數(shù)據(jù).

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,000評論 2 59
  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 32,305評論 2 89
  • 久違的晴天,家長會(huì)。 家長大會(huì)開好到教室時(shí),離放學(xué)已經(jīng)沒多少時(shí)間了。班主任說已經(jīng)安排了三個(gè)家長分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,819評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽閱讀 10,851評論 0 11
  • 可愛進(jìn)取,孤獨(dú)成精。努力飛翔,天堂翱翔。戰(zhàn)爭美好,孤獨(dú)進(jìn)取。膽大飛翔,成就輝煌。努力進(jìn)取,遙望,和諧家園??蓯塾巫?..
    趙原野閱讀 3,505評論 1 1

友情鏈接更多精彩內(nèi)容