はじめまして、リーと申します。
Unicodeファイルの行数を取得しようとしてるのですが、
Asciiファイルの場合は、
lngMaxLine = objFso.OpenTextFile("test.txt", ForAppending).Line
で取得することができます。
Unicodeファイルの場合、この方法ですと正確な行数を取得することができません。
どなたかご存知の方いらっしゃいませんか?
よろしくお願い致します。
OpenTextFileのformat引数を調べてみてください。
返信ありがとうございます。
ご指摘通り、Unicodeファイル用に下記のように引数を指定しますと、、
lngMaxLine = objFso.OpenTextFile("test.txt", ForAppending, False, TristateTrue).Line
行数に関係なく、lngMaxLine = 1 が返ってきます。
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の場合と結果違いますね。
わからねぇ。。。
Blueさん返信ありがとうございます。
いろいろ調べたのですが、よくわからないので、
ファイルを一行ずつ読んでカウントすることにしました。
試していただいてありがとうございます。
ツイート | ![]() |