//读注册程序 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); } } } }