掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
複数のファイルを開き反復処理を行うには (ID:61599)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
よろしくお願いします、先日unsigned char型のデータをテキストボックスに 表示する方法でお世話になったものです、その際はお世話になりました Visual Studio 2005 VC8という環境です、 本日御教授お願いしたいことですが、複数のファイルを開く操作を行う場合、 openFileDialogメッソドのMultiselectプロパティを有効にすれば、実現できますが、 複数ファイルの選択までは行えるのですが、選択したファイルの書出し処理を 行いたいのですが巧くいきません。 次のような処理を行う場合 1. ファイルを複数選択 2. ファイルを開く 3. 関数を呼出し文字整形処理を行う 4. textbox1にファイルの内容を書出す 5. ファイル閉じる 6. 次のファイルを開く 7. 2から6までの処理を最後のファイルまで繰り返す 下記のコードですと 最後に読込んだファイルだけしか処理が行われず、期待している振舞い(反復処理)を しません、どこが問題なのか御教授お願いいたします。 private: System::Void toolStripButton1_Click(System::Object^ sender, System::EventArgs^ e) { using ::System::Windows::Forms::DialogResult; //函数fooの引数 unsigned char arg_1, arg_2; //函数fooの定義 void command_word(unsigned char arg_1, unsigned char arg_2); Stream^ fs; OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog; openFileDialog1->InitialDirectory = "D:\\hoge"; openFileDialog1->Filter = "All files (*.*)|*.*"; openFileDialog1->FilterIndex = 2; openFileDialog1->RestoreDirectory = true; //複数のファイルを選択できるようにする openFileDialog1->Multiselect = true; if ( openFileDialog1->ShowDialog() == ::DialogResult::OK ) { if ( (fs = openFileDialog1->OpenFile()) != nullptr ) { System::IO::BinaryReader ^ binReader = gcnew BinaryReader(fs); //文字変数を24バイト確保 unsigned char c[24]; int i = 0; while(i < 24) { //配列に1バイト読込む c[i] = binReader->ReadByte(); // ポインタインクリメント i++; } //arg_1, aarg_2初期化 arg_1 = c[0]; arg_2 = c[1]; //函数fooの呼出し foo(arg_1, arg_2); // ファイル名の取得 String^ s1 = openFileDialog1->FileName; //変数foo2を初期化 String^ s2 = gcnew String( foo2 ); //変数foo3を初期化 String^ s3 = gcnew String( foo3 ); //foo4の参照している変数を初期化 String^ s4 = gcnew String( foo4 ); //foo5の参照している変数を初期化 String^ s5 = gcnew String( foo5 ); //表示 textBox1->Text = "foo1" + "foo2" + "foo3" + "foo4" + "foo5" + "\r\n" + s1 + s2 + s3 + s4 + s5 + "\r\n" ; //binReaderクローズ binReader->Close(); } } }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.