/// <summary> /// Sets the values to be written to the PQDIF /// file for the increment storage method. /// </summary> /// <param name="start">The start of the increment.</param> /// <param name="count">The number of values in the series.</param> /// <param name="increment">The amount by which to increment each value in the series.</param> public void SetValues(object start, object count, object increment) { VectorElement seriesValuesElement; seriesValuesElement = new VectorElement() { Size = 3, TagOfElement = SeriesValuesTag, TypeOfValue = PhysicalTypeExtensions.GetPhysicalType(start.GetType()) }; seriesValuesElement.Set(0, start); seriesValuesElement.Set(1, count); seriesValuesElement.Set(2, increment); }
// Sets the value of the vector element to the given value. public static void SetValue(this VectorElement element, string value) { string[] values = value.Trim('{', '}').Split(','); if (element.TypeOfValue == PhysicalType.Char1) { byte[] bytes = Encoding.ASCII.GetBytes(value + (char)0); element.Size = bytes.Length; element.SetValues(bytes, 0); } else if (element.TypeOfValue == PhysicalType.Char2) { byte[] bytes = Encoding.Unicode.GetBytes(value + (char)0); element.Size = bytes.Length; element.SetValues(bytes, 0); } else { element.Size = values.Length; for (int i = 0; i < values.Length; i++) { string trim = values[i].Trim(); if (element.TypeOfValue == PhysicalType.Guid) { element.SetGuid(i, Guid.Parse(trim)); } else if (element.TypeOfValue == PhysicalType.Complex8) { element.Set(i, ComplexNumber.Parse(trim)); } else if (element.TypeOfValue == PhysicalType.Complex16) { element.Set(i, ComplexNumber.Parse(trim)); } else { element.Set(i, trim); } } } }
/// <summary> /// Sets the raw values to be written to the PQDIF file as the <see cref="SeriesValues"/>. /// </summary> /// <param name="values">The values to be written to the PQDIF file.</param> public void SetValues(IList <object> values) { VectorElement seriesValuesElement; seriesValuesElement = new VectorElement() { Size = values.Count, TagOfElement = SeriesValuesTag, TypeOfValue = PhysicalTypeExtensions.GetPhysicalType(values[0].GetType()) }; for (int i = 0; i < values.Count; i++) { seriesValuesElement.Set(i, values[i]); } }