編碼分類,代碼比較簡單,就是繁瑣
/// <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ù).