質問編集履歴
3
CSV書き込み・読み込みの処理コードを書きました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,69 +8,37 @@
|
|
8
8
|
使い方がわからず、モヤモヤしています。
|
9
9
|
|
10
10
|
```C++
|
11
|
-
// リストコントロールの
|
11
|
+
// CSVファイルにリストコントロールの内容を書き込む
|
12
|
+
void CBMIviewerDlg::OnBnClickedButton_OutputListCtrlToCSV()
|
13
|
+
{
|
12
|
-
|
14
|
+
CStdioFile output;
|
15
|
+
output.Open( "G:\\DemoPatientData.csv", CFile::modeReadWrite | CFile::modeCreate | CFile::modeNoTruncate );
|
16
|
+
output.SeekToEnd();
|
13
17
|
|
14
|
-
m_
|
18
|
+
for( int k = 0; k < m_arrPatientData.size(); k++ ){
|
15
19
|
|
16
|
-
// ヘッダー情報を追加
|
17
|
-
m_ListCtrl.InsertColumn( 0, "NO.", LVCFMT_CENTER, 60 );
|
18
|
-
m_ListCtrl.InsertColumn( 1, "氏名", LVCFMT_CENTER, 60 );
|
19
|
-
m_ListCtrl.InsertColumn( 2, "性別", LVCFMT_CENTER, 40 );
|
20
|
-
m_ListCtrl.InsertColumn( 3, "身長", LVCFMT_CENTER, 60/*幅*/ );
|
21
|
-
m_ListCtrl.InsertColumn( 4, "体重", LVCFMT_CENTER, 60 );
|
22
|
-
m_ListCtrl.InsertColumn( 5, "BMI", LVCFMT_CENTER, 60 );
|
23
|
-
m_ListCtrl.InsertColumn( 6, "肥満度", LVCFMT_CENTER, 60 );
|
24
|
-
|
25
|
-
// 追加する処理のボタンイベント
|
26
|
-
void CBMIviewerDlg::OnBnClickedButton_RegistData()
|
27
|
-
{
|
28
|
-
|
20
|
+
if( 0 != k
|
29
|
-
CString strNumber;
|
30
|
-
strNumber.Format( "%03d", m_nNumber);
|
31
|
-
|
32
|
-
char chBuffer[100];
|
33
|
-
m_EditName.GetWindowTextA( chBuffer, 5 );
|
34
|
-
CString strName;
|
35
|
-
strName.Format( chBuffer );
|
36
|
-
|
37
|
-
|
21
|
+
&& 6 * k == m_arrPatientData.size() - 1 ){
|
22
|
+
output.WriteString( m_arrPatientData[k] + "\n" );
|
23
|
+
}
|
24
|
+
else{
|
38
|
-
m_
|
25
|
+
output.WriteString( m_arrPatientData[k] + "," );
|
26
|
+
}
|
39
27
|
}
|
40
28
|
|
41
|
-
if( TRUE == m_RadioWoman.GetState() ){
|
42
|
-
|
29
|
+
output.Close();
|
43
|
-
}
|
44
30
|
|
45
|
-
|
31
|
+
}
|
46
|
-
strSex.Format( chBuffer );
|
47
32
|
|
33
|
+
// CSVファイルからデータを読み込んで、リストコントロールへ入力
|
48
|
-
|
34
|
+
void CBMIviewerDlg::OnBnClickedButton_ReadCSV()
|
35
|
+
{
|
49
|
-
CSt
|
36
|
+
CStdioFile input;
|
37
|
+
input.Open( "G:\\PatientData.csv", CFile::modeReadWrite );
|
50
|
-
|
38
|
+
char chBufRead[1024];
|
51
|
-
|
52
|
-
|
39
|
+
input.Read( chBufRead, sizeof( chBufRead ) );
|
53
|
-
|
40
|
+
|
54
|
-
strWeight.Format( chBuffer );
|
55
|
-
|
56
|
-
m_EditBMI.GetWindowTextA( chBuffer, 5 );
|
57
|
-
CString strBMI;
|
58
|
-
s
|
41
|
+
AfxMessageBox( chBufRead );
|
59
|
-
|
60
|
-
m_EditDegreeOfFatness.GetWindowTextA( chBuffer, 5 );
|
61
|
-
CString strDegreeOfFatness;
|
62
|
-
strDegreeOfFatness.Format( chBuffer );
|
63
|
-
|
64
|
-
// 行の追加
|
65
|
-
int nItem = m_ListCtrl.GetItemCount();
|
66
|
-
|
67
|
-
nItem = m_ListCtrl.InsertItem( nItem, strNumber, 0 );
|
68
|
-
m_ListCtrl.SetItem( nItem, 1, LVIF_TEXT, strName, 0, NULL, NULL, NULL );
|
69
|
-
m_ListCtrl.SetItem( nItem, 2, LVIF_TEXT, strSex, 0, NULL, NULL, NULL );
|
70
|
-
m_ListCtrl.SetItem( nItem, 3, LVIF_TEXT, strHeight, 0, NULL, NULL, NULL );
|
71
|
-
m_ListCtrl.SetItem( nItem, 4, LVIF_TEXT, strWeight, 0, NULL, NULL, NULL );
|
72
|
-
m_ListCtrl.SetItem( nItem, 5, LVIF_TEXT, strBMI, 0, NULL, NULL, NULL );
|
73
|
-
m_ListCtrl.SetItem( nItem, 6, LVIF_TEXT, strDegreeOfFatness, 0, NULL, NULL, NULL);
|
74
42
|
}
|
75
43
|
```
|
76
44
|
|
2
変数名
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
m_ListCtrl.SetExtendedStyle( LVS_EX_FULLROWSELECT/*1行全体を選択*/ | LVS_EX_GRIDLINES/*線の表示*/ );
|
15
15
|
|
16
16
|
// ヘッダー情報を追加
|
17
|
-
m_ListCtrl.InsertColumn( 0, "
|
17
|
+
m_ListCtrl.InsertColumn( 0, "NO.", LVCFMT_CENTER, 60 );
|
18
18
|
m_ListCtrl.InsertColumn( 1, "氏名", LVCFMT_CENTER, 60 );
|
19
19
|
m_ListCtrl.InsertColumn( 2, "性別", LVCFMT_CENTER, 40 );
|
20
20
|
m_ListCtrl.InsertColumn( 3, "身長", LVCFMT_CENTER, 60/*幅*/ );
|
1
リストコントロールの初期化、データの追加部分の処理のコードを追加しました!
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,6 +6,73 @@
|
|
6
6
|
MFCでのファイルの入出力はこのクラスを使う!などあれば教えていただきたいです。
|
7
7
|
CFileとかCMFCListCtrlとかなんでしょうか?
|
8
8
|
使い方がわからず、モヤモヤしています。
|
9
|
+
|
10
|
+
```C++
|
11
|
+
// リストコントロールの初期化(OnInitDlg内)
|
12
|
+
// スタイルの追加
|
13
|
+
|
14
|
+
m_ListCtrl.SetExtendedStyle( LVS_EX_FULLROWSELECT/*1行全体を選択*/ | LVS_EX_GRIDLINES/*線の表示*/ );
|
15
|
+
|
16
|
+
// ヘッダー情報を追加
|
17
|
+
m_ListCtrl.InsertColumn( 0, "患者NO.", LVCFMT_CENTER, 60 );
|
18
|
+
m_ListCtrl.InsertColumn( 1, "氏名", LVCFMT_CENTER, 60 );
|
19
|
+
m_ListCtrl.InsertColumn( 2, "性別", LVCFMT_CENTER, 40 );
|
20
|
+
m_ListCtrl.InsertColumn( 3, "身長", LVCFMT_CENTER, 60/*幅*/ );
|
21
|
+
m_ListCtrl.InsertColumn( 4, "体重", LVCFMT_CENTER, 60 );
|
22
|
+
m_ListCtrl.InsertColumn( 5, "BMI", LVCFMT_CENTER, 60 );
|
23
|
+
m_ListCtrl.InsertColumn( 6, "肥満度", LVCFMT_CENTER, 60 );
|
24
|
+
|
25
|
+
// 追加する処理のボタンイベント
|
26
|
+
void CBMIviewerDlg::OnBnClickedButton_RegistData()
|
27
|
+
{
|
28
|
+
m_nNumber += 1;
|
29
|
+
CString strNumber;
|
30
|
+
strNumber.Format( "%03d", m_nNumber);
|
31
|
+
|
32
|
+
char chBuffer[100];
|
33
|
+
m_EditName.GetWindowTextA( chBuffer, 5 );
|
34
|
+
CString strName;
|
35
|
+
strName.Format( chBuffer );
|
36
|
+
|
37
|
+
if( TRUE == m_RadioMan.GetState() ){
|
38
|
+
m_RadioMan.GetWindowTextA( chBuffer, 3 );
|
39
|
+
}
|
40
|
+
|
41
|
+
if( TRUE == m_RadioWoman.GetState() ){
|
42
|
+
m_RadioWoman.GetWindowTextA( chBuffer, 3 );
|
43
|
+
}
|
44
|
+
|
45
|
+
CString strSex;
|
46
|
+
strSex.Format( chBuffer );
|
47
|
+
|
48
|
+
m_EditHeight.GetWindowTextA( chBuffer, 5 );
|
49
|
+
CString strHeight;
|
50
|
+
strHeight.Format( chBuffer );
|
51
|
+
|
52
|
+
m_EditWeight.GetWindowTextA( chBuffer, 5 );
|
53
|
+
CString strWeight;
|
54
|
+
strWeight.Format( chBuffer );
|
55
|
+
|
56
|
+
m_EditBMI.GetWindowTextA( chBuffer, 5 );
|
57
|
+
CString strBMI;
|
58
|
+
strBMI.Format( chBuffer );
|
59
|
+
|
60
|
+
m_EditDegreeOfFatness.GetWindowTextA( chBuffer, 5 );
|
61
|
+
CString strDegreeOfFatness;
|
62
|
+
strDegreeOfFatness.Format( chBuffer );
|
63
|
+
|
64
|
+
// 行の追加
|
65
|
+
int nItem = m_ListCtrl.GetItemCount();
|
66
|
+
|
67
|
+
nItem = m_ListCtrl.InsertItem( nItem, strNumber, 0 );
|
68
|
+
m_ListCtrl.SetItem( nItem, 1, LVIF_TEXT, strName, 0, NULL, NULL, NULL );
|
69
|
+
m_ListCtrl.SetItem( nItem, 2, LVIF_TEXT, strSex, 0, NULL, NULL, NULL );
|
70
|
+
m_ListCtrl.SetItem( nItem, 3, LVIF_TEXT, strHeight, 0, NULL, NULL, NULL );
|
71
|
+
m_ListCtrl.SetItem( nItem, 4, LVIF_TEXT, strWeight, 0, NULL, NULL, NULL );
|
72
|
+
m_ListCtrl.SetItem( nItem, 5, LVIF_TEXT, strBMI, 0, NULL, NULL, NULL );
|
73
|
+
m_ListCtrl.SetItem( nItem, 6, LVIF_TEXT, strDegreeOfFatness, 0, NULL, NULL, NULL);
|
74
|
+
}
|
75
|
+
```
|
9
76
|
|
10
77
|
### 試したこと
|
11
78
|
C++の入門レベルは一通り学習済みのため、ofstreamなどを使おうと試みましたが、
|