• 締切済み

VBS【特定のレコード長で件数取得】

お世話になります。 下記VBSコードですが、あるファイルを特定のレコード長(340で1行)で割って件数を取得したいのですが、 どこを改良すればよいでしょうか? ------------------------------------------------------------- Option Explicit '********オブジェクト変数定義******** Dim FSO , f '********カウント変数宣言************ Dim CNT '********フォルダ変数宣言************ Dim TARGET_FOLDER '********ファイル変数宣言************ Dim TARGET_FILE , TARGET_FILENAME '********レコード長変数宣言************ Dim FILE_LENGTH '********時間変数定義******** Dim YYYYMMDD , HHMMSS , HH , MM , SS YYYYMMDD = Year(Date) * 10000 + MONTH(Date) * 100 + DAY(Date) HH = Hour(Time) MM = Minute(Time) SS = Second(Time) If MM < 10 then MM = "0" & MM End If If SS < 10 then SS = "0" & SS End If HHMMSS = HH & ":" & MM & ":" & SS '********その他変数定義******** Dim FILE_SIZE , FILE_DAY '初期設定 TARGET_FOLDER = "D:\test" TARGET_FILE = "test" TARGET_FILENAME = TARGET_FOLDER & "\" & TARGET_FILE FILE_LENGTH = 340 CNT = 0 'ファイルサイズ・ファイル更新日時取得処理 Set FSO = CreateObject("Scripting.FileSystemObject") Set f = FSO.GetFile(TARGET_FILENAME) FILE_SIZE = f.size FILE_DAY = f.DateLastModified 'レコード件数取得処理 With FSO.GetFile(TARGET_FILENAME).OpenAsTextStream(8) CNT = .Line .Close Msgbox CNT Msgbox FILE_SIZE Msgbox FILE_DAY End With ------------------------------------------------------------- 上記だとCNTはあくまで1改行につき1件でカウントしています。 ご存知の方がいらっしゃいましたら、お知恵を拝借させていただけませんでしょうか? 何卒宜しくお願い致します。

みんなの回答

回答No.1

行でループしてカウントしてるから、改行でカウントするのは当たり前です。 340バイトづつ読まないといけないです。 良く見てないけど、 http://kozhouse.homeip.net/progtec/05/ 「固定長テキストファイルを使う」 これで良いのでは?

すると、全ての回答が全文表示されます。

関連するQ&A