| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

VBS テキストファイル変換テンプレート

提供: MyMemoWiki
2020年2月16日 (日) 04:33時点におけるPiroto (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

VBS テキストファイル変換テンプレート

VBScript |

テキスト変換テンプレート

  • 以下の内容を .vbs ファイルで作成
  • 変換元ファイルをドロップすると、test.txt.【変換_20091126_120221】.txt のようなファイル名で、変換後ファイルを作成する
'
' テキスト変換テンプレート
'
' @see http://msdn.microsoft.com/ja-jp/library/cc410284.aspx
'
Sub TranslateText()
    '作業用
    Dim fso                 ' FileSystemObject http://msdn.microsoft.com/ja-jp/library/cc409798.aspx
    Dim srcFile, dstFile    ' srcFile:変換元ファイルパス, dstFile:変換先ファイルパス
    Dim inf, outf           ' inf:変換元ファイル, outf:変換先ファイル
    Dim output_count        ' 出力件数カウント
    Dim line                ' 作業用ファイル内容行

    'エラーチェック
    IF WScript.Arguments.Count < 1 THEN
        Call WScript.Echo("対象ファイルをこのファイルにドロップしてください")
        Exit Sub
    END IF

    Set fso = CreateObject("Scripting.FileSystemObject")
    srcFile = WScript.Arguments(0)
    IF Not fso.FileExists(srcFile) Then
        Call WScript.Echo("対象ファイルが存在しません。")
        Exit Sub
    End If

    'ファイルの準備
    suffix = Replace(Date,"/","") & "_" & Replace(Time,":","")
    dstFile = srcFile & ".【変換_" & suffix & "】.txt"

    Set inf  = fso.OpenTextFile(srcFile, 1)        '1:ForReading
    Set outf = fso.OpenTextFile(dstFile, 2, True)  '2:ForWriting

    '変換、出力処理
    output_count = 0
    Do While Not inf.AtEndOfLine
        line = inf.ReadLine()
        
        ' ここで変換処理を行う Replace http://msdn.microsoft.com/ja-jp/library/cc410284.aspx
        ' Replace(expression, find, replacewith[, start[, count[, compare]]])
        ' count:置換する文字列数 -1ならすべて
        ' compare:0バイナリ、1:テキストモード
        '
        line = Replace(line,"From","To",1,-1,1)
        
        '出力
        outf.WriteLine(line)
        output_count = output_count + 1
    Loop

    Call WScript.Echo(output_count & "件処理しました。")
End Sub

'主処理
Call TranslateText()