我开始处理一个应用程序(在C#中),它将不同的文件类型从一个转换为另一个,这些文件都是某种类型的GPS-Track文件,例如gpx或tcx文件,或者分布较少的格式。众所周知,它们基本上都是某种xml格式,或者在某些情况下是较少结构化的text / csv文件。问题 - 但也是写这个的原因 - 是文件中的信息/数据存储得非常不同,例如:在gpx中,点的位置数据(lon / lat)存储为属性,而在tcx中,它作为子节点被引用。另一个例子是,在某些格式中,距离存储为绝对值,有些则作为相对值存储。此外,我想在这里处理各种各样的信息,例如功率,爬坡速度,距离上/下坡或动力区仅举几例。例如,最完整的格式每个轨道点存储大约30个值。似乎值得注意的是,对于某些格式,首先存储在其他格式中的一些值必须通过例如计算来导出。两个地理位置条目之间的相对距离。
现在我的问题:我想知道处理所述任务的最佳方法是什么?
到目前为止,我的方法是使用内部DataSet作为内部存储,使用标准xml读取器或文本读取器读取我想要在另一个(源)数据集中导入的文件,然后通过执行来填充目标(内部)DataSet源数据集逐行,逐个表。因此,我会编写各种函数来执行所有必要的计算,以根据内部DataSet的结构将值从源传输到目标。 为了在任何格式的文件中写入数据,我会或多或少地反转这种方法,可能仅限于与某种文件类型真正相关的数据字段。
这是实现我的目标的正确方法吗?有没有其他方法可以做到这一点我不知道?
任何提示都非常有帮助,我想确保从一开始就使用一种简单的方法,因为每个数据值需要大量的计算才能编程,即使每一个都很小/很简单。
感谢您的想法!