/// <summary> /// 将数据转换为DMode,所有数据保存在QFile中的data列表中。 /// </summary> /// <returns></returns> public bool ToDMode() { if (dataMode == QFileMode.DMode || pramters.Count == 0) { return(true); } int count = 0; try { //第一步,取参数中数据最多的那个。 int max = 0; for (int i = 0; i < pramters.Count; i++) { if (max <= pramters[i].data.Count) { max = pramters[i].data.Count; } } //第二步,进行整理,把参数中带的数据,全放到数据QFile.Data中去。 for (int i = 0; i < max; i++) { QData qd = new QData(); for (int j = 0; j < pramters.Count; j++) { QDataItem di = new QDataItem(); if (i >= pramters[j].data.Count) { di.p1 = 256; } else { di = pramters[j].data[i]; count++; } qd.items.Add(di); } data.Add(qd); } //清除参数中的数据。 for (int i = 0; i < pramters.Count; i++) { pramters[i].data.Clear(); } dataMode = QFileMode.DMode; } catch (Exception e) { Console.WriteLine(e.Message); return(false); } //Console.WriteLine(count); return(true); }
/// <summary> /// 将数据转换为DMode,所有数据保存在QFile中的data列表中。 /// </summary> /// <returns></returns> public bool ToDMode() { // 如果已经是D模式了或者数据为空则返回。 if (dataMode == QFileMode.DMode || Charactericstics.Count == 0) { return(true); } Data.Clear(); //Step 1,取参数中数据最多的那个的参数个数保存在max中。 int max = 0; for (int i = 0; i < Charactericstics.Count; i++) { max = max >= Charactericstics[i].data.Count ? max : Charactericstics[i].data.Count; } //Step 2,进行整理,把参数中带的数据,全放到数据QFile.Data中去。 for (int i = 0; i < max; i++) { QData qd = new QData(); //将参数中的数据复制到QFile的Data列表中。 for (int j = 0; j < Charactericstics.Count; j++) { QDataItem di = new QDataItem(); if (i >= Charactericstics[j].data.Count) { di.p1 = 255; } else { di = Charactericstics[j].data[i]; } qd.items.Add(di); } Data.Add(qd); } //清除参数中的数据。 for (int i = 0; i < Charactericstics.Count; i++) { Charactericstics[i].data.Clear(); } dataMode = QFileMode.DMode; return(true); }
//定义了2种模式,PMode和DMode //其中PMode是指数据保证在参数的数据列表中, //而DMode是指数据放置在数据列表中。 /// <summary> /// PMode是指数据保证在参数的数据列表中 /// </summary> public bool ToPMode() { // 如果已经是P模式了或者数据为空则返回。 if (dataMode == QFileMode.PMode || Data.Count == 0) { return(true); } try { //将data中的第一个QData分别给对应的参数赋值。 for (int i = 0; i < Data.Count; i++) { for (int j = 0; j < Charactericstics.Count; j++) { QDataItem di = Data[i].items[j]; // 只有p1为0时,才是数据,否则255或256表示无数据。 if (di.p1 == 0) { Charactericstics[j].data.Add(di); } } } Data.Clear(); dataMode = QFileMode.PMode; } catch (Exception e) { Console.WriteLine(e.Message); // 清空所有参数下的已转换数据。 for (int j = 0; j < Charactericstics.Count; j++) { Charactericstics[j].data.Clear(); } return(false); } return(true); }
//定义了2种模式,PMode和DMode //其中PMode是指数据保证在参数的数据列表中, //而DMode是指数据放置在数据列表中。 /// <summary> /// PMode是指数据保证在参数的数据列表中 /// </summary> public bool ToPMode() { if (dataMode == QFileMode.PMode || data.Count == 0) { return(true); } int count = 0; try { //将data中的第一个QData分别给对应的参数赋值。 for (int i = 0; i < data.Count; i++) { for (int j = 0; j < pramters.Count; j++) { QCharacteristic p = pramters[j]; QDataItem di = data[i].items[j]; if (di.p1 == 0) { p.data.Add(di); count++; } } } data.Clear(); dataMode = QFileMode.PMode; } catch (Exception e) { Console.WriteLine(e.Message); return(false); } return(true); }