第38講 データベースソフト(住所録)の制作=並列処理の練習☆☆
第12話 ファイルの各サブメニューのコードの解説その4(関数bool dcs(String^ c)の役割)
コード再掲
bool dcs(String^ c){
  StreamWriter^ w=gcnew StreamWriter(c,false,System::Text::Encoding::GetEncoding("shift-jis"));
  char i,j;
  for(i=0;i<m;i++){
    for(j=0;j<18;j++){
      w->WriteLine(marshal_as<String^>(u[i][j]));
    }
  }
  w->WriteLine(w);
  w->Close();
  return(true);
}
コード解説
System::Text::Encoding::GetEncoding("shift-jis")でshift-jisというコードを使うように命令しています。
そして、StreamWriter^ w=gcnew StreamWriter(c,false,System::Text::Encoding::GetEncoding("shift-jis"));で
新しく
マルチスレッド
ファイルに書き込むためのStreamWriter^型の変数wを用意しています。
wは変数名ですから、自由に付けられます。
ファイルへ書き込むデータを一時的に入れておく箱の名前=ラベルなので何でもよいのです。
並列処理
  for(i=0;i<m;i++){
    for(j=0;j<18;j++){
      w->WriteLine(marshal_as<String^>(u[i][j]));
    }
  }では、
ファイルストリーム前半を担当しています。
ただし、箱に入るデータは『会社,井上 花子,様,イノウエ ハナコ,・・・,自宅,上井 一太郎,殿,ウエイ イチタロウ,・・・』
直線上にCSV形式に並べられています。StreamWriter^ 型変数を宣言した所以です。
StreamWriter^ 型変数は、CSV形式のデータを入れる変数です。
StreamWriter^ w=gcnew StreamWriter(c,false,System::Text::Encoding::GetEncoding("shift-jis"));によって
その際のコードもshift-jisコードが指定されているのです。
w->WriteLine(w);では
StreamWriter
後半を担当しています。これによって、はじめてファイルに書き込まれます。
WriteLineですから、1行単位の書き込みですが、
データベースにあるすべてのデータ『会社,井上 花子,様,イノウエ ハナコ,・・・,自宅,上井 一太郎,殿,ウエイ イチタロウ,・・・』が
書き込まれています。CSV形式のデータはもともと1行ですから。
w->Close();でwを閉じます。つまり、StreamWriter自体が閉じられます。
ファイルへの書き込みは、wの箱を通してしかできないからです。

第11話へ 第13話へ

戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)