2017年2月22日水曜日

LinqでCSVから配列、配列からCSVへ

CSVから配列への読み込みについては
ネットに参考になるサイトがありました。
https://teratail.com/questions/40822
なるほどと思いました。非常にシンプルで、Linqの威力を感じます。
サイトを参考に、こんな感じで、簡単に配列を用意できるようです。
using System.IO;
public String[][] dcsv;
dcsv=File.ReadLines(csvfilename, Encoding.GetEncoding("utf-8")).Select(s => s.Split(',')).ToArray();

ただ、配列からCSVへの書き込みは、シンプルなものはみつからず
とりあえず、foreachでも使ってみました。
 StreamWriter sw = new StreamWriter(csvfilename);
            foreach ( String[] row in dcsv)
            {
                sw.WriteLine(string.Join(",", row));
            }  
    sw.Close();

2017年2月21日火曜日

c# 別フォームのコントロール取得

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1251572732
が参考になりました。
Form1で Form2のインスタンスを作成したら 親フォーム情報を子フォームに
通知するところがミソのようです。
あとは、子フォームで、親フォームを宣言しておけば、親フォームを扱うことが
できるようです。

Form1(親)側
     Form2 f = new Form2();
            f.form1obj = this;
            f.Show();

Form2(子)側
 public Form1 form1obj;
textBox1.Text= form1obj.listView1.Items[comboBox1.SelectedIndex].SubItems[0].Text;


あと、当然Form1側のコントロールのModifiersはpublicにしておきます。