Mfc-standard-io

提供:Dev Guides
移動先:案内検索

MFC-標準I/O

MFCライブラリは、独自のバージョンのファイル処理を提供します。 これは、CStdioFileという名前のクラスを通じて行われます。 CStdioFileクラスはCFileから派生しています。 Unicodeテキストファイルと通常のマルチバイトテキストファイルの読み取りと書き込みを処理できます。

CStdioFileオブジェクトを初期化できるコンストラクタのリストは次のとおりです-

CStdioFile();
CStdioFile(CAtlTransactionManager* pTM);
CStdioFile(FILE* pOpenStream);
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags);
CStdioFile(LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager *pTM);

CStdioFileのメソッドのリストは次のとおりです-

Sr.No. Name & Description
1
  • Open*
    オーバーロード。 Openは、デフォルトのCStdioFileコンストラクターで使用するように設計されています(CFile
    Openをオーバーライドします)。
2

ReadString

1行のテキストを読み取ります。

3

Seek

現在のファイルポインターを配置します。

4

WriteString

1行のテキストを書き込みます。

新しいMFCダイアログベースのアプリケーションを作成して、簡単な例をもう一度見てみましょう。

  • ステップ1 *-次のスナップショットに示すように、1つの編集コントロールと2つのボタンをドラッグします。

スナップショット

ステップ2 *-編集制御用の値変数 *m_strEditCtrl を追加します。

スナップショット

  • ステップ3 *-[開く]ボタンと[保存]ボタンのクリックイベントハンドラーを追加します。
  • ステップ4 *-これはイベントハンドラの実装です。
void CMFCStandardIODlg::OnBnClickedButtonOpen() {

  //TODO: Add your control notification handler code here
   UpdateData(TRUE);

   CStdioFile file;
   file.Open(L"D:\\MFCDirectoryDEMO\\test.txt", CFile::modeRead | CFile::typeText);

   file.ReadString(m_strEditCtrl);
   file.Close();
   UpdateData(FALSE);
}

void CMFCStandardIODlg::OnBnClickedButtonSave() {

  //TODO: Add your control notification handler code here
   UpdateData(TRUE);
   CStdioFile file;
   if (m_strEditCtrl.GetLength() == 0) {

      AfxMessageBox(L"You must specify the text.");
      return;
   }
   file.Open(L"D:\\MFCDirectoryDEMO\\test.txt", CFile::modeCreate |
      CFile::modeWrite | CFile::typeText);
   file.WriteString(m_strEditCtrl);
   file.Close();
}
  • ステップ5 *-上記のコードをコンパイルして実行すると、次の出力が表示されます。

スナップショット

ステップ6 *-何かを書いて[保存]をクリックします。 データを .txtファイルに保存します。

スナップショット

  • ステップ7 *-ファイルの場所を見ると、test.txtファイルが含まれていることがわかります。

スナップショット

  • ステップ8 *-次に、アプリケーションを閉じます。 同じアプリケーションを実行します。 [開く]をクリックすると、同じテキストが再び読み込まれます。
  • ステップ9 *-ファイルを開いてファイルを読み取り、続いてエディットコントロールを更新します。