于洪波
摘 要:本文針對(duì)日常工作中水氡數(shù)據(jù)上傳的實(shí)際情況,上傳省局和國(guó)家局?jǐn)?shù)據(jù)中心的數(shù)據(jù)文件全部需手工輸入、更名、保存,這一過(guò)程煩瑣,極易出錯(cuò),編寫(xiě)了一段上傳文件自動(dòng)生成程序,實(shí)現(xiàn)了原始數(shù)據(jù)輸入Excel文件后,向程序提供產(chǎn)生上傳文件的日期即可自動(dòng)生成所需的文件,減少了手工操作過(guò)程,降低出錯(cuò)機(jī)率,提高了工作效率。
關(guān)鍵詞:水氡數(shù)據(jù)上傳文件自動(dòng)生成Excel
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2012)06(b)-0025-02
地下水中放射性元素氡的監(jiān)測(cè)是廈門(mén)市地震局一種重要的地震前兆手段,根據(jù)數(shù)據(jù)分析的要求,其數(shù)據(jù)每天測(cè)量一次,并把所測(cè)數(shù)據(jù)以文件的形式上傳省局和國(guó)家局,由于所要求的格式不同,在上傳文件時(shí)就要做較多的手動(dòng)工作,在整理原始數(shù)據(jù)時(shí)如何能做到又快又不易出錯(cuò),是我們?cè)谶M(jìn)行數(shù)據(jù)輸入和上傳時(shí)常常思考的事情,盡量減少人為手工操作步驟是關(guān)鍵。
針對(duì)這種情況,本人設(shè)想,通過(guò)手動(dòng)把原始數(shù)據(jù)輸入到Excel后,上傳省局和國(guó)家局的數(shù)據(jù)文件由是否可以通過(guò)軟件通過(guò)讀取Excel文件,把我們所上傳的這兩類(lèi)文件自動(dòng)生成呢?以實(shí)現(xiàn)整個(gè)過(guò)程的數(shù)據(jù)整理呢,減少出錯(cuò)機(jī)率呢。經(jīng)實(shí)踐,本人用Delphi語(yǔ)言[1,2]編寫(xiě)了一段文件自動(dòng)生成程序,成功解決了該問(wèn)題。整個(gè)過(guò)程只需在完成Excel文件輸入后就可生成上傳省局和國(guó)家局的數(shù)據(jù)文件,整個(gè)過(guò)程既簡(jiǎn)單又不易出錯(cuò)。
下面簡(jiǎn)要介紹廈門(mén)市地震局的做法,并給出實(shí)例程序。
1 文件介紹
1.1 原始氡數(shù)據(jù)Excel文件
由于Excel[3]使用廣泛,是信息交互的主要平臺(tái),同時(shí)也由于報(bào)表管理和評(píng)比的需要,觀測(cè)員把測(cè)量后所得到的原始數(shù)據(jù),報(bào)到我局后由工作人員輸入到Excel表格中(表1),這是水氡數(shù)據(jù)管理的第一步,Excel表格中所包含的信息有主樣、副樣、重測(cè)樣、取樣水溫、流量、預(yù)留列、氣溫、氣壓、降水、溫度、濕度、鼓泡水溫等信息,每五天計(jì)算一組平均值。在本文中,上傳文件就是自動(dòng)讀取它而產(chǎn)生。
1.2 上傳省局的文件
上傳省局的是五個(gè)數(shù)據(jù),要分別輸入到五個(gè)數(shù)據(jù)文件中,文件名及數(shù)據(jù)內(nèi)容(見(jiàn)表2),每個(gè)文件的數(shù)據(jù)是從2000年開(kāi)始以來(lái)的全部數(shù)據(jù),格式為T(mén)XT的,每天數(shù)據(jù)占一行,日期,空格,然后為每天的數(shù)據(jù),非常大量的數(shù)據(jù),如以手動(dòng)進(jìn)行要把文件翻到最后進(jìn)行添加,整個(gè)過(guò)程需重復(fù)對(duì)五個(gè)文件進(jìn)行操作即可完成數(shù)據(jù)的輸入和保存。
1.3 上傳國(guó)家局的數(shù)據(jù)文件
上傳國(guó)家局的數(shù)據(jù)文件(見(jiàn)表3)共計(jì)10個(gè)文件,每個(gè)文件一個(gè)數(shù)據(jù),即當(dāng)天的測(cè)值,文件名tm096101.09:文件格式為T(mén)XT文件;tm是臺(tái)站二們代碼;0表示采樣率為:次/天,96為測(cè)項(xiàng)代碼;101表示數(shù)據(jù)日期為1月1日,當(dāng)月份為10、11,12時(shí)需用A、B、C來(lái)代替;09表示2009年;文件內(nèi)容為2009.01.01觀測(cè)的96測(cè)項(xiàng)的值,如果無(wú)測(cè)值則用999999替代,文件數(shù)量為每天一個(gè)其它數(shù)據(jù)文件以此類(lèi)推。每天打開(kāi)前一天的數(shù)據(jù),把舊的數(shù)據(jù)刪除,輸入新數(shù)據(jù),并在保存時(shí)把文件名改為當(dāng)天名字,如tm096101.09改為tm096102.09,完成一個(gè)數(shù)據(jù)文件的操作。十個(gè)文件全部完成后,上傳國(guó)家局,如前所述整個(gè)操作過(guò)程是煩瑣的,也較易出錯(cuò),由于數(shù)據(jù)測(cè)項(xiàng)對(duì)應(yīng)不同文件,在實(shí)際輸入數(shù)據(jù)上傳文件時(shí),由臺(tái)網(wǎng)當(dāng)班人員完成,通常一個(gè)星期才進(jìn)行一次這樣的操作,因此有時(shí)會(huì)搞亂其對(duì)應(yīng)關(guān)系而輸錯(cuò)數(shù)據(jù)文件,因此常常要打開(kāi)EXCEL文件來(lái)對(duì)比以前數(shù)據(jù)。
根據(jù)以上論述,作者編寫(xiě)了如下程序,旨在完成由Excel文件自動(dòng)產(chǎn)生上傳省局和國(guó)家局文件,在程序中產(chǎn)生數(shù)據(jù)文件的日期由提示后輸入,如:2009年10月20日,輸入20091020即完成文件的產(chǎn)生工作。下面給出部分處理程序,以供借鑒。
2 示例程序
由Excel文件自動(dòng)產(chǎn)生上傳省局和國(guó)家局文件的程序段。
在程序中加入控件TExcelApplication,以便我們對(duì)Excel表格的操作。
procedure ExcelToEQ3;
var
i,:integer;
data:real;
zy,fy,qysw,wd,gpsw:string;
pos:array[0..8] of integer={2,3,5,7,8,9,10,11,12};
codestr:array[0..8] of string={‘96,Hb,95,A1,A2,A3,A8,Ac,9k};
moncode:array[0..2]of string={‘A,B,C};
fname:string;
textstr,mon,day,year,resultstr:string;
begin
year:=copy(textstr,3,4);
if strlen(textstr)=8 then
begin
//讀出月份,如為10、11、12,由用A、B、C代替;
mon:=copy(textstr,5,6);
mon:=moncode[strtoint(mon)-10];
day:=copy(textstr,7,8);
end
else
begin
mon:=copy(textstr,5,5);
day:=copy(textstr,6,7);
end;
//讀主樣、副樣、取樣水溫、氣溫、
//氣壓、降水、溫度、濕度、鼓泡水溫;
//把數(shù)據(jù)寫(xiě)入文件;
For i:=0 to 8 do
Begin
Fname:= 抚远县| 沙河市| 大荔县| 镇安县| 封丘县| 通辽市| 达州市| 论坛| 霞浦县| 比如县| 宜昌市| 大化| 星座| 阿尔山市| 峡江县| 禄丰县| 博湖县| 海宁市| 砀山县| 承德县| 阿拉尔市| 晋州市| 延庆县| 毕节市| 尤溪县| 方山县| 晋宁县| 福鼎市| 皋兰县| 尚志市| 宁远县| 肃北| 光山县| 墨竹工卡县| 东方市| 大名县| 即墨市| 平度市| 浮山县| 黄龙县| 云安县|