Unicodeファイルの行数を取得するには?

解決


リー  2005-11-11 22:04:08  No: 127540

はじめまして、リーと申します。

Unicodeファイルの行数を取得しようとしてるのですが、
Asciiファイルの場合は、
lngMaxLine = objFso.OpenTextFile("test.txt", ForAppending).Line
で取得することができます。
Unicodeファイルの場合、この方法ですと正確な行数を取得することができません。

どなたかご存知の方いらっしゃいませんか?
よろしくお願い致します。


Blue  2005-11-11 22:11:21  No: 127541

OpenTextFileのformat引数を調べてみてください。

MSDN
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsmthopentextfile.asp


リー  2005-11-11 22:26:29  No: 127542

返信ありがとうございます。

ご指摘通り、Unicodeファイル用に下記のように引数を指定しますと、、
lngMaxLine = objFso.OpenTextFile("test.txt", ForAppending, False, TristateTrue).Line
行数に関係なく、lngMaxLine = 1 が返ってきます。


Blue  2005-11-11 23:05:25  No: 127543

Lineプロパティの仕様がようわからんですね。

MSDN
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsproline.asp
には、TextStream ファイル内での現在の行番号を返します
とあるので、ForAppendingでひらけば、最終行に位置になっていると思っていたのですがね。

With objFso.OpenTextfile("test.txt", ForWriting, True, TristateTrue)
    .Writeline "ABC"
    .Writeline "EFG"
    .Close
End With

With objFso.OpenTextfile("test.txt", ForAppending, False, TristateTrue)
    Debug.Print .Line
    .Writeline "HIJ"
    Debug.Print .Line
    .Close
End With

を試してみたのですが、TristateFlaseの場合と結果違いますね。
わからねぇ。。。


リー  2005-11-12 03:31:56  No: 127544

Blueさん返信ありがとうございます。

いろいろ調べたのですが、よくわからないので、
ファイルを一行ずつ読んでカウントすることにしました。

試していただいてありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加