我有一个每5分钟更新一次的文本文件,有3000行左右,我想把里面的数据分镇区存储,分成30个镇,平均每个100条左右,就是我想把这个定时更新的文件分拆成30个文本,再用FTP的形式传送到各个镇区,请问,高手们有没有接触过这样的问题,有什么比较好的方法,我要在5分钟内把这几个操作处理完成,有什么好的范例也可以发到

解决方案 »

  1.   

    分拆成30个临时文件即可。文本文件的处理速度非常快,3000行的文件处理时间应以毫秒计。你的文件真正问题是数据行是否有规律,比方说是否固定每镇区100行,如果不是,如何确定已经换了镇区。分拆后FTP分发出去也简单快速。
      

  2.   

    文件是其他部门通过直接从远方抽取回来生成的,然后通过FTP传送过来的,再在我们信息部门处理;数据规律性不太,不是一个镇区的都在一起,而且传过来的数据是只有一列的,镇区编码之类的,我只有通过顺序读取的方式,然后和数据库里另外一个表定义的公式来区分,所以我想把他转换到数据库里面,再通过数据库生成文本,不知道这种方法是否可行,FTP我知道怎么传的!
      

  3.   

    try
       sl:=TStringlist.create();
       module.query.close;
       module.query.SQL.Clear;
       module.query.SQL.Add('select f_define.b_name,f_define.f_name,f_define.f_zq,f_l_data.rq,f_l_data.sk,f_l_data.f_data from f_define,f_l_data where f_define.f_dm=f_l_data.f_dm and f_zq='''+'**镇'+'''');
       module.query.Open;
       module.query.First;
       while not module.query.Eof do
       begin
       sl.Add(module.query.FieldValues['b_name']+'  '+module.query.FieldValues['f_name']+'  '+module.query.FieldValues['f_zq']+'  '+module.query.FieldValues['rq']+'  '+module.query.FieldValues['sk']+'  '+module.query.FieldValues['f_data']);
       module.query.Next;
       end;
       assignfile(ft,'d:\镇区\**.txt');
       rewrite(ft);
       closefile(ft);
       sl.saveToFile('d:\镇区\**.txt');
       sl.Free;
       except
       end;
    我用这段程序去导出30个镇区的数据,怎么没有数据出来
      

  4.   

    运行是没有问题,我SQL里面也可以运行和看到数据,为什么我这么写没有见到文本里面有数据添加上去呢
      

  5.   

    >>>>>>>sl.saveToFile('d:\镇区\**.txt');别用***啦,用aaa都可以。