4月 24, 2014

更新顯示溫溼度紀錄的VBA程式

曾經負責寫個程式,把B地溫溼度監控電腦的監控紀錄,每2分鐘傳送到A地的網頁主機,提供使用者查詢觀看......

1.現況說明
 B地監控電腦以執行監控程式的方式,在螢幕上顯示各擷取點的紀錄,監控程式本身並無傳送資料檔案到遠端的功能,詢洽廠商此為選購功能,意思是要另外花錢買!
但研究該監控程式,具備功能將溫溼度紀錄存成CSV檔案,另以EXCEL開啟CSV檔,顯現的溫溼度紀錄會自動更新,因此,想用EXCEL將CSV檔定時另存新檔,再用方法將該檔傳送到A地,即可達成目標。

2.分析需求,執行動作
同步各電腦基準時間
定時將B地監控電腦的溫溼度紀錄存成CSV檔案
定時將B地CSV紀錄檔傳送到A地

3.實作

同步各電腦基準時間
使用Network Time Protocol 就是NTP,將各電腦與台灣本地的時間校正伺服器同步,網路上有相關說明。

定時將B地監控電腦的溫溼度紀錄存成CSV檔案
使用EXCEL的VBA,每2分鐘另存csv檔(覆蓋原檔),程式碼如下:

Public timenow As Double

Sub auto_open()
timenow = Now

freq = "00:02:00"
Application.OnTime timenow + TimeValue(freq), "auto_open"
Call UpdateRecord
End Sub

Sub
UpdateRecord()
    Dim recdate, rectime, rowindex, colindex
    rowindex = 5
    colindex = 1
    recdate = Date              '取得系統日期
    rectime = Format(Time, "hh:mm:ss")              '取得系統時間(24小時制)
    Workbooks(2).Sheets(1).Cells(rowindex, 1).Value = recdate               '記錄本批資料日期
    Workbooks(2).Sheets(1).Cells(rowindex, 2).Value = rectime               '記錄本批資料時間
    For colindex = 1 To 6
               '記錄本批資料日期      Workbooks(2).Sheets(1).Cells(rowindex, colindex + 2).Value = Workbooks(1).Sheets(1).Cells(colindex + 1, 3).Value
        'MsgBox " Date= " & recdate & " Time= " & rectime           '偵錯顯示訊息
        'MsgBox Workbooks(1).Sheets(1).Range("A2").Value & " " & Workbooks(2).Sheets(1).Range("A4").Value    '偵錯顯示訊息
    Next colindex
    Workbooks(2).Save
    Application.DisplayAlerts = False
    Workbooks(2).SaveAs "Book2003a.txt", FileFormat:=42
               '另存文字檔
 End Sub

定時將B地CSV紀錄檔傳送到A地
使用DOS的批次檔,定時以FTP指令傳送檔案到遠端A地

使用此法,存成文字檔案

4月 04, 2014

套件管理指令

在ububtu 中使用apt移除套件後,未移設定檔,要查已移除但尚有設定檔未清除套件資訊,指令如下:
dpkg -l | grep "^rc"

從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 ,指令如下
:1,$s/word1/word2/g