気象観測盤データをSQL鯖に取り込みExcelの表を出力する必要があったので行った方法。
気象観測盤のコンパクトフラッシュからFDTファイルをPCに取り込む。
ExcelVBAでFDTファイル中の必要なデータを取り出しCSVに保存。
PQADMIN上SQLエディタでSQL文を打ちSQL鯖にデータ取り込み。
MS Accessからリンクテーブルを参照し、必要なデータを取り出すクエリとレポートを作成。
MS AccessからMS Excel形式でエクスポートし、Excel上で手直しして保存。
テキストエディタで文字列の置換を実行するよりもExcelVBAで行った方が高速かつ低負荷でした。
以下はExcelVBAコード及びSQL文
Perlの方が遙かに簡単なスクリプトで同じ処理をできる模様。
詳しくはこの記事参照
ExcelVBA
ThisWorkbook内
Option Explicit
Public Sub tikan()
'---------- 変数の宣言 ----------
Dim j As Integer '開始行
Dim strLPass, strSPass As String
Dim strLName, strSName As String
'L:ロード S:セーブ
Dim iLRowSt, iLRowEd As Variant
'CSVファイル中抽出開始行,終了行
Dim fs, fsLoad, fsSave As Object 'FSO用
Dim strLine As String '読み込んだ文字列
'---------- 変数の宣言 End ----------
'----------- 編集ここから -----------
iLRowSt = 1 '処理開始行
iLRowEd = 831 '処理終了行
'3万行ほどまでしか一度に処理できないので注意
'読み込むパスとファイル名(パス末尾に必ず\つける)
strLPass = "C:\"
strLName = "2007-07-16.log"
'書き込むパスとファイル名(パス末尾に必ず\つける)
strSPass = "C:\"
strSName = "2007-07-16_re.csv"
'まだ下に置換文字列の設定箇所がある
'----------- 編集ここまで -----------
'----------- 処理ここから -----------
Set fs = CreateObject("Scripting.FileSystemObject")
'OpenTextFile(ファイル名,モード(1:読取専,2:上書き,8:追記))
'読み取り専用モードでファイルを開く
Set fsLoad = fs.OpenTextFile _
(strLPass & strLName, 1)
'上書きモードで保存用CSVファイルを開く(作成)
Set fsSave = fs.OpenTextFile _
(strSPass & strSName, 2, True)
j = 1 '開始行
'1行分読み込む
strLine = fsLoad.ReadLine
'読み込んだ行がファイルの末尾になるまで以後の処理を繰り返す
Do Until fsLoad.AtEndOfLine = True
'抽出開始行以降ならば抽出する
If j >= iLRowSt Then
'----------- 編集ここから -----------
'無駄な半角スペースを除去
strLine = Replace(strLine, " ", "")
strLine = Replace(strLine, ":00, 2", ":00',2")
strLine = Replace(strLine, " ", "")
strLine = Replace(strLine, "/ ", "/")
strLine = Replace(strLine, ", ", ",")
strLine = Replace(strLine, "2007", "'2007")
'----------- 編集ここまで -----------
'抽出した行を別ファイルに保存
fsSave.WriteLine strLine
End If
'抽出終了行になったら処理を中断する
If j >= iLRowEd Then Exit Do
j = j + 1
strLine = fsLoad.ReadLine
Loop
'CSVファイルを閉じる
fsLoad.Close
fsSave.Close
End Sub
SQL文
COPY 気象観測.kisyo
FROM 'c:\\2007-07-16_re.csv'
CSV;
Google search for: 気象観測盤データ取り込み
Trackback:No Trackbacks
- TrackBack URL for this entry
- Sorry, no trackback pings are accepted.
- Listed below are links to weblogs that reference
- 気象観測盤データ取り込み from まやろぐlocal
