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 "変換が完了しました。"
このページを共有:
  • このページをはてなブックマークに追加 このページを含むはてなブックマーク
  • このページをlivedoor クリップに追加 このページを含むlivedoor クリップ
  • このページをYahoo!ブックマークに追加
  • このページを@niftyクリップに追加
  • このページをdel.icio.usに追加
  • このページをGoogleブックマークに追加

このページのURL:

ページ新規作成

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

TOP