每30秒,我需要生成一个txt文件的报告,然后把其拷贝到局域网上的另外一台电脑上。下面是我的代码:
’--------------------------------------------------------------------------------------------------------------------
    currenttime = Format(Now, "yyyymmddhhmmss")
    strFileName = "C:\Banyan_Report\DGBANYAN_34BYANDR_" + currenttime + ".TXT"
    lngHandle = FreeFile()
    'the content to write in
    strWrite = "DGBANYAN_34BYANDR_" + currenttime + vbCrLf + _
    "11" + vbCrLf _
    + "DGBANYAN_34BYANDR_DGGEN01" + "  HZ" + sp1 + CStr(i1) + vbCrLf _
    + "DGBANYAN_34BYANDR_BUSBAR01" + " HZ" + sp2 + CStr(i2) + vbCrLf _
    + "DGBANYAN_34BYANDR_DGGEN01" + "  KV" + sp3 + CStr(i3) + vbCrLf _
    + "DGBANYAN_34BYANDR_BUSBAR01" + " KV" + sp4 + CStr(i4) + vbCrLf _
    + "DGBANYAN_34BYANDR_DGGEN01" + s1 + sp5 + CStr(i6) + sp6 + CStr(i7) + vbCrLf _
    + "DGBANYAN_34BYANDR_PGFEED01" + s2 + sp7 + CStr(i9) + sp8 + CStr(i10) + vbCrLf _
    + "DGBANYAN_34BYANDR_PGFEED02" + s3 + sp9 + CStr(i12) + sp10 + CStr(i13) + vbCrLf _
    + "DGBANYAN_34BYANDR_XFMRVCB4" + " " + s4 + "      0.0" + "      0.0" + vbCrLf _
    + "DGBANYAN_34BYANDR_XFMRVCB5" + " " + s5 + "      0.0" + "      0.0" + vbCrLf _
    + "DGBANYAN_34BYANDR_PRESSURE" + " PS" + sp11 + CStr(i16) + vbCrLf _
    + "DGBANYAN_34BYANDR_FLOW" + "     EV" + sp12 + CStr(i17) + vbCrLf _
    + "EOF"    Open strFileName For Output As lngHandle    'open txt
    Print #lngHandle, strWrite;    'write in txt
    Close lngHandle    'close txt
’----------------------这是生成txt报告的代码--------------------------------------------------------------------------
’------------------------------------------------------------------------------------------------------------------
    On Error Resume Next
    File_name = "C:\Banyan_Report\DGBANYAN_34BYANDR_" + currenttime + ".TXT"
    Save_name = "\\Office03\Banyan_Report\DGBANYAN_34BYANDR_" + currenttime + ".TXT"
    
    FileCopy File_name, Save_name
’----------------------这是拷贝到局域网上另外机器的代码------------------------------------------------------------------
因为怕LAN的连接断掉,所以加了个错误处理。
现在测试是如果一切正常,可以每30秒生成一个报告。
如果,我故意把网线拔掉,当然不会拷贝到另外一台电脑。但是本机生成报告的时间不再是30秒,总是随机要多3,4秒。
请问这个跟错误处理有关系吗?怎么可以解决到这个问题呢?
先谢谢。

解决方案 »

  1.   


    建议出错时在本地保存文件    On Error resume next  ' 打开错误处理程序。
        File_name = "C:\Banyan_Report\DGBANYAN_34BYANDR_" + currenttime + ".TXT" 
        Save_name = "\\Office03\Banyan_Report\DGBANYAN_34BYANDR_" + currenttime + ".TXT" 
        
        FileCopy File_name, Save_name 
        if err.number=错误号 then
        Save_name = "Banyan_Report\temp\DGBANYAN_34BYANDR_" + currenttime + ".TXT" 
        
        FileCopy File_name, Save_name 
        exit sub
        end if
      

  2.   

    客户不强求30s发送报告,但是要30s生成报告。
    请问怎么把txt文件存入数据库,然后发送出去,有没有什么例子看看的。
      

  3.   

    建议:你把他们要读取的关键部分分为几个字段存到数据库的一个表中,发送时读取数据库数据,使用winsock发送给客户端,然后在客户端生成文本文件。