いつもお世話になっております。
VC++6.0 MFCを使っています。
開いたファイルがテキストファイルかそうでないかを拡張子以外で判断する方法が分かりません。
リッチテキストかどうかも分かるとさらに良いのですが・・・
なにかいい方法は無いでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

テキストかどうかを拡張子以外で判別するとしたら


ファイルの内容を読んで使用している文字コード以外が使われてないか
1バイトずつ判別するしかないんじゃないでしょうか。
もしSJISを使う場合でしたら_mbbtypeっていうライブラリ関数があるので
これで調べる事ができると思います。

リッチテキストかどうかになると、指定したタグ等があるかのチェックを
行うぐらいでしょうか。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
大変参考になりました。
素直に文字コードをチェックする方向でやってみます。

お礼が遅れてしまい大変失礼致しました。

お礼日時:2002/01/28 14:51

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QVC++5.0とVC++6.0の違いは?

何がどう変わったんでしょうか?
なんとなく使っているだけなのでぜんぜんわかりません。

簡単にんでいいんで思いつくことを書いてもらえるだけでもうれしいです。


よろしくお願いいたします。

Aベストアンサー

MFCのバージョンが違います。MFCのリファレンスを見れば6で増えた機能が分かります。

例えばブラウザを簡単に作れるCHtmlViewは6でないと使えません。

QVC++6.0からVC++.NETへの変遷について

VC++がようやく分かり出したこの頃ですが、今日本屋に立ち寄ったら、なっ なんとVC++の本がほとんど無くなり、代わりにVC++.NETとVC#ばかりになっていました。

C#はVC++とは違うと聞いていたのですが、読んでみるとVC++.NETもかなり違ってました。
(かなり違うという表現は、各人の状況により意見が異なると思いますが)

私のような本を見ながらコードを打って勉強している初心者にとって、VC++.NETの本ではVC++6.0を動かすことができません。

今から勉強する人や本を買って勉強しようとしている人あるいは、コンパイラを手に入れようとしている人はVC++.NETに移行してしまわざるを得ないのでしょうか?

すでにVC++6.0を十分活用出来ている人も、時代の流れでNETやC#を勉強していかなければならないのでしょうか?

つまり、単なるバージョンアップとは一線をなす変更がなされたということなのでしょうか?

良くご存知の方見解をお願いします。

Aベストアンサー

すぐにではありませんが、.NETに移行せざるを得なくなるでしょうね。
ただ、開発環境という面では、VS.NETにはC++が含まれており、C++の部分は
従来のC++も利用できるようになっていて、これはアンマネージC++と呼ばれています。
C++で.NETのコードを作成する時は、マネージC++という拡張仕様で記述します。
また、従来のコードと.NETフレームワーク用コードを混在させてアプリケーションを
開発することもできます。これは、相互運用という形で説明されています。

ということですので、C++で習得したものが無駄になることはありません。
たぶん、.NET環境の開発には、C++よりもC#やVB.NETを利用することが
多くなると思いますが、C++を理解していることはプラスにはなってもマイナスには
なりませんので、頑張って下さい。

.NET関連のサイトを2つご紹介しておきます。ご参考に。
http://www.microsoft.com/japan/msdn/library/default.asp
http://www.atmarkit.co.jp/fdotnet/index.html

すぐにではありませんが、.NETに移行せざるを得なくなるでしょうね。
ただ、開発環境という面では、VS.NETにはC++が含まれており、C++の部分は
従来のC++も利用できるようになっていて、これはアンマネージC++と呼ばれています。
C++で.NETのコードを作成する時は、マネージC++という拡張仕様で記述します。
また、従来のコードと.NETフレームワーク用コードを混在させてアプリケーションを
開発することもできます。これは、相互運用という形で説明されています。

ということですので、C++で習得したもの...続きを読む

Q【VC++6.0(MFC)】スタックメモリサイズの変更方法

いつも大変お世話になっております。
VC++初心者です。

スタックメモリサイズがデフォルトで1Mが設定されているようですが、
それを確認、及び、変更する方法を教えていただけませんでしょうか。
(具体的には、1.0Mから0.5Mにしたいです。)

ちなみに、某サイトで
「プロジェクトのプロパティ→リンカ→システム→スタックのサイズの設定」
で変更可能であるとあったのですが、「プロジェクトのプロパティ」が何を指すのか分かりませんでした。
お手数ですが、よろしくお願いします。

Aベストアンサー

それはおそらくVS2002以降の場合ですね。
VC++6.0では、プロジェクト(メニュー)→設定→リンク(タブ)→アウトプット(ドロップダウンリストボックス)→スタックアロケーション→予約がスタックサイズです。
Debug、Release個別に設定できますので注意してください。

リンカのデフォルト値が使われるので、1MBかどうかの確認はできません。
ですが、普通にVC++のリンカを使っていれば1MBです。
http://msdn.microsoft.com/ja-jp/library/8cxs58a6.aspx

QVC++2005 VC++6.0で使えた関数がつかえない?(たとえば、GetModuleFileNameとか、、)

VC++超超初心者です。

いままであったVC++6.0で利用できていた、VC++2005で
GetModuleFileNameができなくなりました。
(利用できないことなんて、ないと思いますが、、、)

何か宣言とかinclude文とか必要なのでしょうか。

すみませんが、よろしくお願いします。

Aベストアンサー

VC++2005無料版にはPlatformSDKが別になっているのでそのままでは使えません
別にPlatformSDKをインストールしてVC++2005の設定を変える必要があります
VC++2008では無料版にもSDKが付属しています

QMFC VC++ 6.0 使用 

CModel::OnDraw(CDC *pDC)
{
pDC->TextOut(0,0,"OK");
}

というふうに OnDrawの中で pDC->TextOut()と 使って 実行画面に 文字を表示させることは できるのですが、例えば 自分が 追加した 関数

void CModel::On_Distance(){

}

などで、実行画面に 文字をだしたいときは どうすればいいのでしょうか?pDC を 手に入れることが できるのであれば そのほうほう 教えてください。

Aベストアンサー

CWnd::GetDC()
GetDC()で取得したデバイスコンテキストは
使い終わったら必ずReleaseDC()で開放しましょう。


人気Q&Aランキング

おすすめ情報