Пример #1
0
        //读注册程序
        private void button8_Click(object sender, EventArgs e)
        {
            Fanuc.PRGDIR3 prgdir3 = new Focas1.PRGDIR3();
            short         a = 2, c = 100;//a:输出type b:指针开始位置 c:程序的总数量
            int           b   = Convert.ToInt16(textBox1.Text);
            short         ret = Fanuc.cnc_rdprogdir3(Fanuc.h, a, ref b, ref c, prgdir3);

            //dir1包含的数据number编号 length程序大小 comment注释
            if (ret == Fanuc.EW_OK)
            {
                string sprgdir3       = "dir";
                string sprgdir3_data  = "number";
                string sprgdir3_data2 = "length";
                string sprgdir3_data3 = "comment";
                string sprgdir3_data4 = "mdate";
                string sprgdir3_data5 = "year";
                string sprgdir3_data6 = "month";
                string sprgdir3_data7 = "day";
                string sprgdir3_data8 = "hour";
                string sprgdir3_data9 = "minute";

                if (ret == Fanuc.EW_OK)
                {
                    //处理显示的数据
                    listcnc_rdprogdir2.Items.Clear();
                    listcnc_rdprogdir2.Items.Add("合计:" + c);
                    listcnc_rdprogdir2.Items.Add("程序号(个)|大小(Kbyte)|时间            |注释()");
                    System.Type type = prgdir3.GetType();                 //|2016/5/25 24:24
                    for (int j = 1; j < c + 1; j++)
                    {
                        sprgdir3 = "dir" + j;
                        FieldInfo   fieidinfo = type.GetField(sprgdir3);
                        object      ob        = fieidinfo.GetValue(prgdir3);
                        System.Type typeob    = ob.GetType();

                        string ncNumber = typeob.GetField(sprgdir3_data).GetValue(ob).ToString().PadLeft(4, '0');
                        ncNumber = ncNumber.PadRight(12, ' ');

                        double temp = Convert.ToDouble(typeob.GetField(sprgdir3_data2).GetValue(ob).ToString());
                        temp = temp / 1024.0 + 0.5;
                        if (temp < 1)
                        {
                            temp += 0.5;
                        }
                        string ncLength = ((int)temp).ToString();
                        ncLength = ncLength.PadRight(13, ' ');

                        object      ob1    = typeob.GetField(sprgdir3_data4).GetValue(ob);
                        System.Type tyob1  = ob1.GetType();
                        string      year   = tyob1.GetField(sprgdir3_data5).GetValue(ob1).ToString().PadLeft(4, '0');
                        string      month  = tyob1.GetField(sprgdir3_data6).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      day    = tyob1.GetField(sprgdir3_data7).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      hour   = tyob1.GetField(sprgdir3_data8).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      minute = tyob1.GetField(sprgdir3_data9).GetValue(ob1).ToString().PadLeft(2, '0');
                        string      nctime = year + "/" + month + "/" + day + " " + hour + ":" + minute;

                        string ncComment = typeob.GetField(sprgdir3_data3).GetValue(ob).ToString();

                        string all = ncNumber + "|" + ncLength + "|" + nctime + "|" + ncComment;
                        listcnc_rdprogdir2.Items.Add(all);
                    }
                }
            }
        }