いつもお世話になっております。
WindowsXP環境にある下記のようなVBSがあります。
コード------------------------------------------------------------------
path = "a.txt"
Set FSO = WScript.CreateObject( "Scripting.FileSystemObject" )
'全行読み込み処理 (改行を1行単位として)
Set f = FSO.OpenTextFile( path )
Do Until f.AtEndOfStream
line = f.ReadLine()
i_line = f.Line - 1
Loop
WScript.Echo "全件数= " & i_line
'最終行-5読み込み処理
Set f = FSO.OpenTextFile( path )
For i=1 To i_line - 6
f.SkipLine
Next
LAST5 = f.ReadLine()
MOJI = Mid(LAST5,20,5)
WScript.Echo "文字 = " & MOJI
コード------------------------------------------------------------------
上記VBSの簡単な流れは・・・
(1)改行で1行とみなす a.txt を全行取得。
(2)全件数を表示
(3)最終行から5行前の行まで移動。
(4)(3)の行から20文字からの5文字を取得。
(5)5文字を表示。
とこんな感じです。
しかし、これだと改行有のファイルにのみ有効で
改行無には対応出来ません。
例えば120文字で1行とみなすファイルでも同様の
取得がしたいのです。
ご存知の方がいれば、ご教授願いませんでしょうか?
何卒、宜しくお願い致します。
No.1
- 回答日時:
> しかし、これだと改行有のファイルにのみ有効で
> 改行無には対応出来ません。
> 例えば120文字で1行とみなすファイルでも同様の
> 取得がしたいのです。
読み込んだ文字数が分かれば行数は計算で求められますよね。
この回答への補足
ご回答ありがとうございます。
>読み込んだ文字数が分かれば行数は計算で求められますよね。
ちなみに、
ファイルサイズ/120 で【120文字を1行とした件数】は出せるのでしょうか?
No.2ベストアンサー
- 回答日時:
方法が二つあります。
(1)Read(120)のように読み込むバイト数を指定する
(2)ADODB.Streamを使う
Dim Stream, Text
Set Stream = CreateObject("ADODB.Stream")
Stream.Open
Stream.Type = 2 'テキストモード
Stream.Charset = "shift_jis"
Stream.LoadFromFile path
Text = Stream.ReadText(120)
ADODBの方は文字コードの指定や変換が可能なこと、
Positionプロパティを使って任意の位置から読めること、
バイナリデータを扱えることなど応用範囲が広いため、
憶えておくと便利です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) FileSearch2007に変わる構文について 1 2022/12/16 16:57
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
ファイルから読み取った改行文...
-
改行について
-
C++でのCRLFについて
-
COBOLの改行
-
エクセルVBA 文字列領域が不足...
-
エディットボックスで改行
-
文字列型変数に1024を超えた文...
-
エディットボックスの改行
-
JavaDoc コメントの改行について
-
変数の中の改行コードをBRタグ...
-
JAVA System.out.println の ...
-
C# csvでセル内で改行するには
-
MacOSXのgccのprintfで改行が出...
-
文の改行
-
グレープシティのSPREAD...
-
nl2brを使用すると<br />が挿入...
-
JAVA Spring 改行コードを含む...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
ファイルから読み取った改行文...
-
JAVA System.out.println の ...
-
C++で空Enterの入力を判...
-
COBOLの改行
-
テキストファイルから改行コー...
-
改行について
-
【VBA】エクセルで最後の不要な...
-
1行ごとに取得して、その改行...
-
jsp 改行コードで改行させて表...
-
VBAでCSVをExcelに取り込む時に...
-
エクセルVBA 文字列領域が不足...
-
最終行の改行について
-
改行を読み飛ばす
-
コンボボックスの項目中に改行を
-
ExcelVBAでメールを作成してメ...
-
テキストボックス行の桁数を制...
-
JavaMail,本文中の改行について
おすすめ情報