![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- その他(プログラミング・Web制作) プログラミング python pandas 固定長データの出力 2 2022/08/16 11:22
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
- Excel(エクセル) EXCEL関数(数式)を教えてください 2 2022/06/08 18:32
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
DoEventsがやはり分からない
Visual Basic(VBA)
-
regsvr32で登録された一覧を知りたい
UNIX・Linux
-
-
4
ウォッチ式の文字数制限について
Visual Basic(VBA)
-
5
frxファイルの役目
Visual Basic(VBA)
-
6
CloseとDisposeの違い
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
シェルコマンドの 2>&1 とはど...
-
テキストの各行に行番号をつけ...
-
VC++でUTF-8のファイルを出力し...
-
高速置換の方法
-
ファイルの文字コードをUTF-8に...
-
Acccess レポートをグループ別...
-
C言語での縦方向のファイル出力...
-
C言語での印刷方法
-
AccessVBA複数レポート条件毎に...
-
テキストファイルに改行コード...
-
CreateProcess関数と実行後の戻...
-
ファイル出力の場所を指定
-
C言語のプログラムが異常終了し...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
c言語の質問です。 ランダムに4...
-
UNIX & Linux の標準出力で得た...
-
二次元配列をクリップボードに...
-
1行ずつではなくまとめてファイ...
-
OCRで起こしたテキスト文字をCS...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
Acccess レポートをグループ別...
-
ファイル出力の場所を指定
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
テキストファイルに改行コード...
-
fwprintf()について
-
二次元配列をクリップボードに...
-
外国語とCSVについて
-
ファイルの文字コードをUTF-8に...
-
csvファイルでの出力について
-
C言語での印刷方法
-
(VBA)書式が変更されてしまい...
-
フォルダにあるPDF情報の抽出(VBA)
-
C言語での縦方向のファイル出力...
-
CSVファイルを任意の場所に出力...
-
標準出力とファイルに効率的に...
-
CreateProcess関数と実行後の戻...
おすすめ情報