Top/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 "変換が完了しました。"