厦门市地震局水氡上传数据文件自动生成

2012-04-29 13:18于洪波
科技创新导报 2012年17期
关键词:国家局省局数据文件

于洪波

摘 要:本文针对日常工作中水氡数据上传的实际情况,上传省局和国家局数据中心的数据文件全部需手工输入、更名、保存,这一过程烦琐,极易出错,编写了一段上传文件自动生成程序,实现了原始数据输入Excel文件后,向程序提供产生上传文件的日期即可自动生成所需的文件,减少了手工操作过程,降低出错机率,提高了工作效率。

关键词:水氡数据上传文件自动生成Excel

中图分类号:TP391 文献标识码:A 文章编号:1674-098X(2012)06(b)-0025-02

地下水中放射性元素氡的监测是厦门市地震局一种重要的地震前兆手段,根据数据分析的要求,其数据每天测量一次,并把所测数据以文件的形式上传省局和国家局,由于所要求的格式不同,在上传文件时就要做较多的手动工作,在整理原始数据时如何能做到又快又不易出错,是我们在进行数据输入和上传时常常思考的事情,尽量减少人为手工操作步骤是关键。

针对这种情况,本人设想,通过手动把原始数据输入到Excel后,上传省局和国家局的数据文件由是否可以通过软件通过读取Excel文件,把我们所上传的这两类文件自动生成呢?以实现整个过程的数据整理呢,减少出错机率呢。经实践,本人用Delphi语言[1,2]编写了一段文件自动生成程序,成功解决了该问题。整个过程只需在完成Excel文件输入后就可生成上传省局和国家局的数据文件,整个过程既简单又不易出错。

下面简要介绍厦门市地震局的做法,并给出实例程序。

1 文件介绍

1.1 原始氡数据Excel文件

由于Excel[3]使用广泛,是信息交互的主要平台,同时也由于报表管理和评比的需要,观测员把测量后所得到的原始数据,报到我局后由工作人员输入到Excel表格中(表1),这是水氡数据管理的第一步,Excel表格中所包含的信息有主样、副样、重测样、取样水温、流量、预留列、气温、气压、降水、温度、湿度、鼓泡水温等信息,每五天计算一组平均值。在本文中,上传文件就是自动读取它而产生。

1.2 上传省局的文件

上传省局的是五个数据,要分别输入到五个数据文件中,文件名及数据内容(见表2),每个文件的数据是从2000年开始以来的全部数据,格式为TXT的,每天数据占一行,日期,空格,然后为每天的数据,非常大量的数据,如以手动进行要把文件翻到最后进行添加,整个过程需重复对五个文件进行操作即可完成数据的輸入和保存。

1.3 上传国家局的数据文件

上传国家局的数据文件(见表3)共计10个文件,每个文件一个数据,即当天的测值,文件名tm096101.09:文件格式为TXT文件;tm是台站二们代码;0表示采样率为:次/天,96为测项代码;101表示数据日期为1月1日,当月份为10、11,12时需用A、B、C来代替;09表示2009年;文件内容为2009.01.01观测的96测项的值,如果无测值则用999999替代,文件数量为每天一个其它数据文件以此类推。每天打开前一天的数据,把旧的数据删除,输入新数据,并在保存时把文件名改为当天名字,如tm096101.09改为tm096102.09,完成一个数据文件的操作。十个文件全部完成后,上传国家局,如前所述整个操作过程是烦琐的,也较易出错,由于数据测项对应不同文件,在实际输入数据上传文件时,由台网当班人员完成,通常一个星期才进行一次这样的操作,因此有时会搞乱其对应关系而输错数据文件,因此常常要打开EXCEL文件来对比以前数据。

根据以上论述,作者编写了如下程序,旨在完成由Excel文件自动产生上传省局和国家局文件,在程序中产生数据文件的日期由提示后输入,如:2009年10月20日,输入20091020即完成文件的产生工作。下面给出部分处理程序,以供借鉴。

2 示例程序

由Excel文件自动产生上传省局和国家局文件的程序段。

在程序中加入控件TExcelApplication,以便我们对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;

//读主样、副样、取样水温、气温、

//气压、降水、温度、湿度、鼓泡水温;

//把数据写入文件;

For i:=0 to 8 do

Begin

Fname:=;

Fname:=Tm01+codestr[i]+mon+day+‘.+year;

Data:= Excelapplication1.Cells.Item[2,pos[i]];

Assignfile(myfile,fname);

rewrite (myfile);

Writeln(myfile,data);

Closefile(myfile);

End;

zy:=Excelapplication1.Cells.Item[2,2];

fy:=Excelapplication1.Cells.Item[2,3];

qysw:=Excelapplication1.Cells.Item[2,5];

wd:=Excelapplication1.Cells.Item[2,10];

qpsw:=Excelapplication1.Cells.Item[2,12];

//依次创建上传省局文件并写入相应数据;

Textstr:=teststr+ ‘+zy;

Assignfile(myfile, 厦门市东孚水氡主样.txt);

rewrite(myfile);

Writeln(myfile,zy);

Closefile(myfile);

resutstr:=teststr+ ‘+fy;

Assignfile(myfile, 厦门市东孚水氡副样.txt);

rewrite(myfile);

Writeln(myfile,resultstr);

Closefile(myfile);

resultstr:=teststr+ ‘+qysw;

Assignfile(myfile, 厦门市东孚水氡取样水温.txt);

rewrite(myfile);

Writeln(myfile,resultstr);

Closefile(myfile);

resultstr:=teststr+ ‘+wd;

Assignfile(myfile, 厦门市东孚水氡室温.txt);

rewrite(myfile);

Writeln(myfile,resultstr);

Closefile(myfile);

resultstr:=teststr+ ‘+gpsw;

Assignfile(myfile, 厦门市东孚水氡鼓泡水温.txt);

rewrite (myfile);

Writeln(myfile,textstr);

Closefile(myfile);

end;

3 结语

本文中所涉及的整个处理过程,没有复杂的编程和数据格式转换,但却实实在在地解决了我们所面临的工作中的实际问题,通过程序的自动生成降低了出错率,实现了计算机自动化过程。地震的前兆的数据处理,所用文件格式由于需要不同,格式也不相同,在使用过程需要手动输入,使得交流和使用比较困难,这种现状短期内还无法改变,目前我们所能做的就是如何尽可能的提高整个过程的自动化程序,文件格式自动生成和转换势在必行。文件中所给出的自动处理程序,解决了面临的问题,提高了厦门市地震局水氡前兆数据的输入和上传速度,减少了出现错误的机率,提高了工作效率。

参考文献

[1] 快速开发技能工具—Delphi,陈晓勇主编,电子工业出版社,2005.

[2] Delphi算法与数据结构,[美]Julian Bucknall著,林琪朱涛江译,中国电力出版社,2003.

[3] 图解精通Excel2007中文版,姚建军等编著,中国水利水电出版社,2008.

猜你喜欢
国家局省局数据文件
四级高级主办
主管部委与国家局的职责关系研究
——基于中美大部制内部治理结构的比较
数据文件恢复专题问答
数据文件安全管控技术的研究与实现
SQL数据文件恢复工具
省局采取多种形式宣传新修订的《测绘法》
一张纸的旅程
车位
世界知识产权组织国际局的职能
Tekla Structure数据文件交互格式分析