仕様追加

 今日は、席替えソフトを、M永先生に話してみたら、
メンバーの削除をDBからじゃなしに、アプリケーション側で対応せよ。
という、まぁもっともな意見がでた。

 やっぱり、ユーザ側の意見というのは、貴重である。
どうしても、「暗号化してないしさぁ、CSVなんだからDBいじればいいじゃない」と楽をしようとしてしまう。

 で、仕様を考えながら一番楽な方法を探すことにする。これまでの
資源を有効に使うためには、チェックボタンを実装して、一括で消去するのが、
最もよさげなので、そういう風に作っていった。

 が、なぜかvectorを利用しようとすると、うじゃあってエラーが出てくる。
で、さらに調査したら、こんなページを発見。

VC++ / MFC TIPS
なんてこった!!ガッデーーームッ!
あ、でも#pragmaすればいいのね。
で、やってみたら、うまいこといった。

でも、string型のvectorの確保がエラーはでないのに、文字が化けてる。

もう意味不明。
でも、VCってC++が使えるんだろう?と思ってさらに調べると、
http://www.nantekotta.com/stl.html
↑なページを発見。

おいおいSTLサポートする気ないって。これANSIだよね。
ここで、戦意喪失して、寝よう。
でも、どこで失敗しているのかわからないので、下に書いておこう。
明日見直すのだ。

std::vector ivtEraceMember;
std::vector::iterator pp;

こいつらはうまいこといくけど、
std::vector svt;
が変。
でも、
std::vector svt;は、認識しない。
イテレータと、svtとどっちがミスってんのかは、
明日調査予定

/** チェックボックスについたメンバを削除する
*/
void StudentInfo::memberErace()
{
	HWND hTemp;	
	int iSelected;
	char sz[80];
	int iInitEditNum;
	std::vector<int> ivtEraceMember; 
	std::vector<int>::iterator pp;
	std::vector<std::string> svt;

	std::vector<std::string>::iterator szpp;
	std::vector<int> ivtSex;
//	std::vector<int>::iterator pSex;

	int iRet = MessageBox( hDlg, "チェックされたデータを削除してもよいですか。
\n(ここで[はい]を押下して削除しても、\n設定ボタンを押下しない限りデータは保存されています。)",
 "削除の確認", MB_YESNO | MB_ICONQUESTION );

	if ( iRet != IDYES ) {
		return;
	}

	//何番目のデータが削除ボタンがONになっているかを取得する
	for (int iCounter = 0; iCounter < 40; iCounter++) {
		if ( IsDlgButtonChecked( hDlg, IDC_CHECK01 + iCounter ) ) {
			ivtEraceMember.push_back( iCounter );
		}
	}
	
	//イテレータで、表示さ!
/*	for (  pp = ivtEraceMember.begin(); pp != ivtEraceMember.end(); pp++) {
		wsprintf( sz, "%d", *pp );
		MessageBox( NULL, sz, sz, MB_OK );		
	}
*/

	//実際に、画面のデータに詰め込んでいく作業をする
	bool isChecked ;
	for ( int iCounter = 0; iCounter < this->iMemberNumber; iCounter++ ) {
		isChecked = false;
		for ( pp = ivtEraceMember.begin(); pp != ivtEraceMember.end(); pp++ ) {
			if ( iCounter == *pp ) {
				isChecked = true;
		//		break;
			}
		}
		if ( isChecked == true ) {
			SetDlgItemText( hDlg, IDC_EDIT3 + iCounter, "" );
			continue;
		}
		//データにつめる
								//名前
		GetDlgItemText( hDlg, IDC_EDIT3 + iCounter, sz, sizeof(sz));
	//	MessageBox(NULL, sz, sz, MB_OK );
		svt.push_back( sz );
		
		//性別情報
		hTemp = GetDlgItem( hDlg, IDC_COMBO01 + iCounter );
		iSelected = SendMessage( hTemp, CB_GETCURSEL, 0, 0);
		ivtSex.push_back( iSelected );
	}

	//詰め込んだので、次は、吐き出していく
	iInitEditNum = IDC_EDIT3;
	char ss[80];
	for ( szpp = svt.begin(); szpp != svt.end(); szpp++ ) {
		wsprintf( ss, "%s", szpp);
		MessageBox( NULL, (LPCTSTR)szpp, "2", MB_OK);
		SetDlgItemText( hDlg, iInitEditNum, ss );
		iInitEditNum++;
	}



}