最近由於要開發乙個erp和採集器對接的功能,主要功能是將erp的資料轉換成一定格式的檔案,並可傳輸至採集器。
開發環境:vs2005
採集器型號:dt900、dt930
資料格式(說明)
工作單號(佔10個字元)|型別(佔6個字元)|分揀編碼/物流方向(佔16個字元)|配載方式/遞送人員(佔16個字元)
資料文字例項:
10000000000進港 bbd 張三
20000000000出港 天津 幹線物流
10000000000進港 bbll wang三
技術限制:
由於c#在擷取乙個字串中一定資料的字字串時,漢字算乙個字元(實際上佔兩個位元組),英文本母也算是乙個字元(實際上佔乙個位元組),假如擷取相應位元組長度的字元時,中英文本元的個數產生了不同長度位元組的字串,一時未能找到乙個直接可以呼叫的函式來處理,經過半天的實踐,終於找到解決的辦法了,現分享一下我的結果,請大俠制定,給出更好的處理辦法,拋磚引玉吧。
我寫的那個處理方法的源**如下:
public string ctr(string pstr, int num)
string strnum=pstr;
byte bytes1 = system.text.encoding.default.getbytes(strnum.trim());
int icha = bytes1.length;
if (icha > num)
byte bytes2 = system.text.encoding.default.getbytes(pstr.trim().substring(0, num)); string strnum1 = "";
strnum1 = system.text.encoding.default.getstring(bytes2, 0, num);
int len = strnum1.length;
string substr = pstr.substring(0, len);
if (substr != strnum1)
strnum = system.text.encoding.default.getstring(bytes2, 0, num-1);
else
strnum=strnum1;
return strnum;
呼叫這個方法,就可以從原字串中得到任意位元組長度的字字串了,比如:
原字串:string pstr="章khkh1524漢54646 "
要擷取11個位元組長度的字串,
理論結果:章khkh1524
呼叫該方法:
ctr(pstr,11)即可得到
Java實現位元組陣列中擷取指定長度陣列元素
本文使用system提供的乙個靜態方法arraycopy 實現陣列間的複製。public static native void arraycopy object src,int srcpos,object dest,int destpos,int length src 源陣列 srcpos 源陣列要...
c 位元組陣列的長度 字元陣列
在 c 語言中,字串應用的非常廣泛,但是卻沒有字串型別。為了解決這個問題,c語言使用字元陣列來儲存字串。1.字串與字串結束標誌.在 c 語言中沒有專門定義字串型別,通常使用字元陣列來儲存字串。由於字串也採用字元陣列進行儲存,為了區分普通字元陣列和字串,c 語言規定以字元 0 作為字串結束標誌。例如 ...
字串擷取固定長度的方法 C
這個函式也沒有什麼特別之處,就是可以擷取一定長度的字串,可能小特點就是len是位元組,解決了漢字與英文位元組不一樣導致直接擷取到的長 度不一樣的問題,region 字串擷取函式 public static string cutstring string inputstring,int len 如果截...