国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

高校實驗室信息統(tǒng)計檢測系統(tǒng)提交數(shù)據問題的探討

2015-03-12 08:42張國強姚海燕
安陽工學院學報 2015年6期
關鍵詞:字段字符字節(jié)

張國強,李 響,姚海燕

(安陽工學院,河南安陽455000)

高等學校實驗室信息統(tǒng)計檢測上報系統(tǒng)(以下簡稱上報系統(tǒng)),用于高等院校每年向國家教育部上報數(shù)據的校驗、審核、報表打印和網上傳送,是一個設備信息管理的數(shù)據庫管理系統(tǒng)。按照操作說明系統(tǒng)運行環(huán)境中對客戶端的說明原文是“Windows 98/Xp/2000/2003 以上,所用機器能上Cernet 網”。而目前,大多數(shù)電腦的運行環(huán)境是win7或win8,這就存在著兼容性的問題。

1 上報數(shù)據存在的問題

1.1 上報系統(tǒng)兼容性問題

上報系統(tǒng)中提交數(shù)據時追加來源對話框如圖1所示。從追加數(shù)據支持的文件格式就可以看出,它所支持的文件有些已經可以用古老來形容了。例如Excel版本是5.0,而我們現(xiàn)在使用的電腦安裝的Excel版本都是2003以上的版,有的已經在使用2013版。又例如Table(DBF)連VFP6.0的表文件竟然也不能兼容。

關于數(shù)據庫的軟件有很多,而大多數(shù)人掌握的還是Excel,而各個部門的情況也不一樣,安裝的Excel 版本也是各種各樣。所以在進行匯總時,我們是不能直接導入上報系統(tǒng)的。

1.2 數(shù)據寬度的問題

由于學校各個部門和實驗室很多,表中的字段在存儲的時候,沒有嚴格按照上報系統(tǒng)規(guī)定的數(shù)據寬度來進行限制。實際上使用Excel 的話,嚴格按照指定的寬度來進行限制是難以完成的。這就導致除了文件格式的問題,還有數(shù)據寬度的問題都需要解決。

在上報系統(tǒng)中,對字段的數(shù)據寬度做了限制,其中字段的名稱、數(shù)據類型和數(shù)據長度的具體要求如表1所示。在實際的文件中,“儀器名稱”、“型號”、“規(guī)格”三個字段均有部分記錄超出了規(guī)定的長度。

表1 字段屬性

2 文件的處理方案

上報系統(tǒng)可以支持Excel 格式的文件導入,但最高只能支持Excel5.0版本的文件。而Excel5.0的文件系統(tǒng)只能支持16000 多條記錄。而實際文件的記錄數(shù)目超出了這個上限。保存為5.0版本后,缺少了部分記錄。這樣,用簡單的“另存為”已經不能完成任務了。

對付舊版本的軟件,還需要用低版本的軟件來對付。在處理數(shù)據到正確上傳過程中,除了用來匯總文件的一臺電腦安裝的Excel 2013外,還使用了另一臺電腦。該電腦使用的操作系統(tǒng)為Windows XP,安裝的軟件分別有Access 2003 和VFP6.0。因為Excel 和Access 都是微軟公司的辦公軟件Microsoft office 的組件,而同一臺電腦無法同時安裝兩個不同版本的Office,所以必須用兩臺電腦完成。使用Access 2003 主要是用它來把Excel2003 的文件轉換成適合VFP 處理的DBF 文件。當然VFP6.0也可以直接導入Excel文件,但在導入時,對Excel文件的兼容性不如Access,且有些文件直接導入VFP會出現(xiàn)失敗。經過一段時間的研究和嘗試,把匯總好的2013版的Excel文件,最后生成可以導入上報系統(tǒng)的文件,大致總結了4個步驟。

2.1 文件轉換

將Excel 文件另存為2003 兼容格式,使用Access 2003 導入excel 文件,并導出為dBASE5 文件格式。

2.2 數(shù)據截短

長度超過限制的字段主要來源于“儀器名稱”、“型號”、“規(guī)格”等字段。對于數(shù)萬條記錄,如果靠人工重新歸納數(shù)據字符表達的含義,是非常煩瑣的一件事情。另外,系統(tǒng)中規(guī)定的數(shù)據長度不是很短,前面的字符大致可以看出數(shù)據表達的重要信息。所以對于超出長度的數(shù)據,采用刪除尾部字符的方法截取數(shù)據。在VFP6.0 中,限制字符寬度是比較容易的,只需打開dBASE5 文件,按照表1修改表結構,就可以將數(shù)據長度截短。

2.3 刪除亂碼

因為文檔中的數(shù)據是由中文、英文、數(shù)字和標點等字符混合組成的,其中英文、數(shù)字和英文的標點符號占一個寬度,漢字和中文的標點符號占2個寬度,所以在長度截短后,會出現(xiàn)半個漢字或半個中文標點的問題。例如:第2611條記錄,型號的內容為“Freescale Cortex-A9系列”,前面英文、數(shù)字和“-”符號的部分“Freescale Cortex-A9”,包括中間一個空格長度為19,截取20個長度,正好把緊挨的“系”字截去一半。雖然在VFP 中,截去的半個漢字不顯示,但在用上報系統(tǒng)提交時,會被檢測到,導致審核不能通過。如果截去的是半個中文標點,情況和半個漢字是一樣的。因此,需要把最后出現(xiàn)半個漢字或半個標點的情況,再減少一個長度,使之長度為19。數(shù)據中的半個漢字可能是任意一個漢字的一半,VFP 中沒有這樣的函數(shù),可以檢測一個字符是否為半個漢字。但有可以檢測字符是否為前導字節(jié)的函數(shù)ISLEADBYTE(),該函數(shù)可以判斷字符是否是雙字節(jié)字符。如果字符的第一個字節(jié)是前導字節(jié),那么字符是雙字節(jié)字符,否則字符是單字節(jié)字符。判斷最后一個字符是否為半個漢字或半個中文標點,可以通過判斷是否為雙字節(jié)字符的前導字節(jié)的方法,使用該函數(shù)判斷最后一個字符是否為雙字節(jié)字符的前導字節(jié)。如果是就刪除最后一個字符,使其變?yōu)榭崭瘛?/p>

但在實際使用過程中,發(fā)現(xiàn)ISLEADBYTE()對于漢字的后半部分,檢測的結果也為真。就是意味著,即使最后一個字符是完整的漢字,也會和半個漢字的情況一樣,函數(shù)返回值為真,即最后一個是半個漢字還是一個完整的漢字是沒有辦法用該函數(shù)區(qū)分的。編程思路調整為用ISLEADBYTE()函數(shù)檢測最后一個字符,不管是完整的漢字還是半個漢字都刪掉。長度超過限制的字段主要來源于“儀器名稱”、“型號”、“規(guī)格”等字段。對于這些長度超過限制需要截短的字符來說,其意義已經不能非常完整的表達,但前面的字符應該基本可以體現(xiàn)其主要的含義,后面的字符多一個或者少一個,對于表達的意義已經影響不大,所以這種方法也是可行的。所以在選取字符進行判斷時,使用了rightc()函數(shù)。該函數(shù)從一個字符表達式中返回最右邊指定數(shù)目的字符。字符表達式可以包含單字節(jié)和雙字節(jié)的任意組合。而比較常用的right()函數(shù),只返回單字節(jié)的表達式。刪除最后一個字符是用的是leftc()函數(shù)和lenc()函數(shù)。這些帶c的函數(shù)和rightc()函數(shù)效果相似。

具體程序如下:

scan for ISLEADBYTE(rightc(儀器名稱,1))

repl 儀器名稱with leftc(儀器名稱,(lenc(儀器名稱)-1))

endscan

刪除其他字段的程序和上述程序一樣,把字段名改一下即可,不再一一列出。

2.4 數(shù)據導出上報

上傳系統(tǒng)支持的導入文件類型如圖1 所示。其中Table(DBF)就是VFP 表文件的格式。但是VFP6.0的表文件導入以后,數(shù)據全部空白,說明系統(tǒng)對VFP6.0的表文件也不兼容。VFP6.0文件導出支持的格式如圖2 所示。其中DIF 文件一種可進行數(shù)據互換的電子表格,兼容性較好,且上報系統(tǒng)也支持該格式文件,所以最后選擇了“Data Interchange Format(DIF)”格式的文件導出。最終上報審核成功。

3 結束語

當然,Excel和Access也都是數(shù)據庫軟件,可以對數(shù)據進行處理。之所以選擇使用VFP,主要原因是VFP 支持的數(shù)據格式與上報系統(tǒng)相似度最高,而數(shù)據導入導出是最容易出現(xiàn)兼容性問題的關鍵一步。如果數(shù)據處理好了,但是因為格式的原因不能導入,將會前功盡棄,最后不得不更換軟件再重新處理。為了確保該提交數(shù)據方案的通用性,數(shù)據處理的過程較為煩瑣。另外,Excel2013 是向下兼容的,所以2013版的文件可以成功上報,低版本的文件也是可以的。在實際的使用中,可以對有些步驟進行精簡,至于如何精簡,需要具體問題具體分析,這里也不能一一列舉了。

[1]李亮輝.Excel 應用技巧與實戰(zhàn)[M].北京:清華大學出版社,2015.

[2]崔洪芳.Access 數(shù)據庫應用技術[M].北京:清華大學出版社,2014.

[3]蔡洪濤,曾羲梅,李茜.Visual FoxPro 程序設計實踐教程[M].北京:科學出版社,2014.

猜你喜歡
字段字符字節(jié)
帶鉤或不帶鉤選擇方框批量自動換
No.8 字節(jié)跳動將推出獨立出口電商APP
一種優(yōu)化的手寫字符自動分割算法
論高級用字階段漢字系統(tǒng)選擇字符的幾個原則
字符代表幾
圖片輕松變身ASCⅡ藝術畫
淺談臺灣原版中文圖書的編目經驗
No.10 “字節(jié)跳動手機”要來了?
無正題名文獻著錄方法評述
無正題名文獻著錄方法評述
广平县| 射阳县| 福泉市| 永吉县| 达孜县| 哈尔滨市| 洛隆县| 广丰县| 兴仁县| 塔城市| 安义县| 当阳市| 凭祥市| 南部县| 平利县| 剑川县| 临桂县| 临武县| 德格县| 泰宁县| 曲周县| 宜宾市| 南陵县| 东丽区| 紫金县| 克拉玛依市| 龙门县| 离岛区| 许昌县| 元氏县| 慈利县| 绿春县| 巴林左旗| 达州市| 澄江县| 紫阳县| 石景山区| 图木舒克市| 新余市| 庆元县| 凤城市|