
VB6のCBool関数で
#付きの論理文字列? #TRUE#,#FALSE#
を読み込ませるとそれぞれbool値のTrue,Falseに変換してくれます。
.NET(2013)に移行して、互換の関数であるCBoolをそのまま使うとエラーが発生して変換できませんでした。
CBool関数について検索したりして調べたのですが、これらの文字列に対する処理が書かれたものは見つかりませんでした。
#TRUE#,#FALSE#をbool値に変換するには、文字列でそのまま比較して変換してやるしかないのでしょうか?
なぜ、こんなことを質問しているかというと、Write関数(WriteLine関数)でbool値をファイルに出力すると#TRUE# または #FALSE# で出力されるので、それをそのまま読み込みたいのです。
もちろん、例えば数値の1,0に変換して出力しておくなどの方法もありますが、それだと過去のファイルとの互換性がなくなるため、VB6で出力したファイルが使用できなくなります。
VB.NETでもWrite関数(WriteLine関数)で出力すると#TRUE#または#FALSE#と出力されるのでそれをそのまま読み込みたいのですが、VB.NETでは読み込めないというのは片手落ちの気がするのですが。
No.1ベストアンサー
- 回答日時:
VB6とVB.NETは似てるけど別物と考えた方がいいです。
#TRUE#を Trueとして読むなら、Input関数が使えます。
https://msdn.microsoft.com/ja-jp/library/tty8298 …
おそらく、 VB6互換のWriteで書いたものは、同じく互換のInputで読む、というのが想定している使い方なのでしょう。
私なら、#True#も変換できる自家版Cboolを用意します。
#true# と #false#を大文字小文字区別無しに判定させればいいだけなので。
回答ありがとうございます。
Input 関数で直接ブール変数に読み込めば確かに読み込めるようですね。
現在のソースはInputでString変数に読み込み、そののちCBoolを使用してブール変数に変換するようになっております。
なぜそうなっているかは元のソースの製作者に聞かないとわかりませんが、特別な理由があるとすればエラー処理の関係かと思います。
読み込むファイルが必ずWriteで出力されたbool文字であればよいのですが、手で編集したもの、nullだった場合、項目数が違ってしまった場合などのエラーがどこで起きるかですね。
汎用性、互換性、エラー処理を考えるとおっしゃるとおり自前のCboolを用意するのが一番いいかもしれません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル出力の場所を指定
-
コマンド(例えばls)の出力結果...
-
【ExcelVBA】UTF-8(BOM無)でC...
-
Acccess レポートをグループ別...
-
エクセルVBA→シート名でCSV出力...
-
大量のHTMLデータのテキスト、...
-
VB.NETでExcelファイルを出力す...
-
シェルコマンドの 2>&1 とはど...
-
FORTRANの出力データの左寄せが...
-
VBA でメモ帳へ保存する際の保...
-
Visual Basic 6.0で 1行 読...
-
Wordマクロで指定したフォルダ...
-
構造体のファイル出力
-
pcap形式データをテキストへ抽出
-
C言語初心者の質問失礼します。
-
どんなプログラムを書いても指...
-
バッファとは何ですか
-
Access クエリ実行が急に非常に...
-
csvファイルを開かずに文字を検...
-
fopenで別ディレクトリにファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【ExcelVBA】UTF-8(BOM無)でC...
-
テキストファイルに改行コード...
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
シェルコマンドの 2>&1 とはど...
-
Acccess レポートをグループ別...
-
ファイル形式またはファイル拡...
-
pcap形式データをテキストへ抽出
-
ファイル出力の場所を指定
-
AccessVBA複数レポート条件毎に...
-
外国語とCSVについて
-
VBA でメモ帳へ保存する際の保...
-
サウンド出力のデバイスを選択...
-
C++ fprintf_sの使い方がわからん
-
アプリを実行すると、作成者を...
-
ファイルの文字コードをUTF-8に...
-
1行ずつではなくまとめてファイ...
-
Wordマクロで指定したフォルダ...
-
SendKeys "^V", True(貼り付け...
-
CSVファイルを任意の場所に出力...
おすすめ情報