LoginSignup
0
4

More than 3 years have passed since last update.

tsv形式とcsv形式のファイルを相互変換

Posted at

はじめに

tsvファイル、またはcsvファイルを変換スクリプトファイルにドラッグ&ドロップで相互変換するプログラム

何番煎じかっていう&ゆくゆくは死に言語であるvbsのため、完全に自分用メモ

使い方

1.以下のスクリプトを保存し、拡張子をvbsにする
2.変換したいファイルをドラッグ&ドロップ(複数ファイルの一括ドロップ可)
3.同一ディレクトリに変換後のファイルが出力される

Option Explicit
'*******************************************************************************
'CSV TSV_converter.vbs
'  tsv(タブ区切り)形式とcsv(カンマ区切り)形式を相互変換
'  INPUT : 変換元ファイル(複数可)
'  OUTPUT: 変換元ファイル名.tsv、または変換元ファイル名.csv
'*******************************************************************************

Dim objFSO                        'As Object
Dim objArg                        'As Object
Dim objInput                      'As Object
Dim objOutput                     'As Object
Dim strLine                       'As String
Dim i                             'As int
Dim pathName, fileName, fileExt   'As String
Dim cnvExt, chrBefore, chrAfter   'As String

Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")
Set objArg = Wscript.Arguments

For i = 0 To objArg.Count - 1
  Set objInput = objFSO.OpenTextFile(objArg(i), 1)                                 'ForReading
  pathName = objFSO.GetFile(objArg(i)).ParentFolder
  fileName = objFSO.GetBaseName(objArg(i))
  fileExt = objFSO.GetExtensionName(objArg(i))

  '拡張子を判定し、区切り文字を指定
  If fileExt = "csv" Then
    cnvExt =".tsv"
    chrBefore = Chr(44)
    chrAfter = Chr(9)
  ElseIf fileExt = "tsv" Then
    cnvExt =".csv"
    chrBefore = Chr(9)
    chrAfter = Chr(44)
  End If

  Set objOutput = objFSO.OpenTextFile(pathName & "\" & fileName & cnvExt, 2, True) 'ForWriting
  Do Until objInput.AtEndOfStream
    strLine = Replace(objInput.ReadLine, chrBefore, chrAfter)
    objOutput.WriteLine (strLine)
  Loop
  objInput.Close
  objOutput.Close
Next 'i

Set objFSO = Nothing
Set objArg = Nothing

Wscript.Quit (0)
0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4