- ベストアンサー
"の文字列長について
下記のようにテキストファイルより1行読み込んで、 その1行目の文字数(バイト数)を取得する処理を作成しました。 Dim sBuffer As String Open "aaa.txt" as Input For #1 Line Input #1, sBuffer Msgbox sBuffer おおよそはうまく動作するのですが、 テキストファイルの1行目が "aaaaaaaaaa","bbbbbbbbbbbbb" のように、"が含まれていると、"を2バイトと 換算してしまうので、うまく動作しません。 "を1バイトとして換算して、正確な文字数(バイト数)を 取得するのには、どうしたらよろしいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VB6やエクセル97以降のVBAなら、 LenB(StrConv(sBuffer, vbFromUnicode)) ではいかがでしょうか? では!
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
旧DOS-BASIC以来ある PRINT#-INPUT#の対になったINPUT# を使えばどうですか。あとWRITE#も今後の参考に調べてはどうですか。 Sub test02() Open "c:\my documents\aac1.txt" For Input As #1 p01: If EOF(1) Then GoTo e01 Input #1, a$ MsgBox a GoTo p01 e01: Close #1 End Sub 例えばメモ帳で "aass","sdf",123(改行) dfg,2345(改行) <(改行)はエンタキーを押すことを意味する。> をaac1.txtで保存し、上記を実行すると、「"」は 出てきませんが。msgbox len(a$)も入れて試してみて 納得してください。
お礼
ありがとうございます。 早速試してみたいと思います。
お礼
ありがとうございます。 うまく文字列長がとれるようになりました。