Top/VBS/指定されたバイト数でファイルに改行コードを入れる

VBS/指定されたバイト数でファイルに改行コードを入れる の変更点


//VBS/指定されたバイト数でファイルに改行コードを入れる
*使い方
後述のプログラムを「FileFold.vbs」という名前で保存してください。
以下の方法で実行すると変換ファイルが作成されます。

 FileFold.vbs バイト数 変換するファイル名 変換後のファイル名

*プログラムコード

 '
 ' ファイル折り畳み(FileFold.vbs)
 '
 '   指定されたバイト数でファイルに改行コードを入れます。
 '
 '   (使い方)
 '     FileFold.vbs バイト数 変換するファイル名 変換後のファイル名
 '
 '
 Option Explicit
 
 Dim objParm
 Dim numLineSize
 Dim objFileSys
 Dim strReadFilePath
 Dim strWriteFilePath
 Dim objReadStream
 Dim objWriteStream
 Dim i, j
 
 Set objParm = Wscript.Arguments
 
 If objParm.Count < 3 Then
     WScript.echo "コマンドライン引数が足りません"
     WScript.Quit
 End If
 
 numLineSize = objParm(0)
 If IsNumeric(numLineSize) = false Then
     WScript.echo "1個目の引数が数値ではありません"
     WScript.Quit
 End If
 
 strReadFilePath = objParm(1)
 strWriteFilePath = objParm(2)
 
 Set objFileSys = CreateObject("Scripting.FileSystemObject")
 
 objFileSys.CreateTextFile strWriteFilePath
 
 Set objReadStream = CreateObject("ADODB.Stream")
 Call objReadStream.Open()
 objReadStream.Type = 1 'Binary
 objReadStream.LoadFromFile(strReadFilePath)
 
 If objReadStream.Size >= 1 Then
 
     ReDim a(objReadStream.Size - 1)
 
     j = 0
     For i = 1 To objReadStream.Size
         a(j) = AscB(objReadStream.Read(1))
         j = j + 1
     Next
 
     Set objWriteStream = CreateObject("ADODB.Stream")
     Call objWriteStream.Open()
     objWriteStream.Type = 2 'Text
     objWriteStream.Charset = "ISO_8859-1:1987"  'Binary
 
     For i = 0 To UBound(a)
         Call objWriteStream.WriteText(ChrW(a(i)))
         If (i + 1) Mod numLineSize = 0 Then '指定バイト数毎に改行
             Call objWriteStream.WriteText(vbCrLf)
         End If
     Next
 
     Call objWriteStream.SaveToFile(strWriteFilePath, 2)
     Call objWriteStream.Close()
 
 End If
 
 Call objReadStream.Close()
 
 Set objReadStream = Nothing
 Set objWriteStream = Nothing
 Set objFileSys = Nothing
 
 WScript.Echo "変換が完了しました。"

ページ新規作成

新しいページはこちらから投稿できます。

TOP