VB将记录列表存储在文本文件中并回读

问题描述 投票:0回答:1

我在VS2017中有一个VB程序。它读取许多excel文件并将相关数据存储在Dim total_sessions As New List(Of Session_CSV_file)列表很大(〜10k),每个列表包含约20个字段。

VB中是否有一种方法可以将它存储在一个命令中的文件中,并在以后轻松读取,而又不读写每个字段?

通常,我需要调试后面的部分。我更喜欢这样做,而无需重新运行整个第一部分。还是在Visual Studio中有一种方法可以像模拟器通常那样在某一点停止运行并将此点存储在转储文件中? (因此他们可以稍后再运行模拟)

vb.net visual-studio-2017
1个回答
0
投票
Dim dt as New DataTable dt.Columns.Add("Name") dt.Columns.Add("Age", GetType(Int32)) For Each filepath in tenKFilePaths For Each line in File.ReadAllLines(file) Dim bits = line.Split(","c) dt.Rows.Add(bits(0), Convert.ToInt32(bit(1)) Next line Next filepath

然后您可以将全部保存到xml:

dt.WriteXml("c:\temp\my.xml")

喝咖啡,重新启动等,再次阅读它们,然后从上次中断的地方继续:

Dim dt2 as New DataTable
dt2.ReadXml("c:\temp\my.xml")

如果将新的DataSet类型的对象添加到项目中,则双击它会打开类似于数据库设计器的对象。右键单击该表面,然后选择“添加数据表”,“添加具有各自数据类型的列”等-这等效于您的Session_Csv_File类及其属性和字段。双击它,您可以添加代码等-如果session_csv_file具有自定义方法,则可以将其代码传输到自定义数据行
想象一下,我在数据集中创建了一个新的数据表,并将其称为SessionCsvFiles。想象一下,我添加了“名称和年龄”列,并添加了一个名为BlahBlah的自定义方法

然后我就可以用代码说出类似的东西:

Dim dt as New MyCustomDataSet.SessionCsvFilesDataTable 'it's like making a new SessionCsvFile Dim r = dt.NewSessionCsvFilesRow() 'It's like setting your properties r.Name = csvBits(0) r.Age = Convert.ToInt32(csvBits(1)) 'It's like adding your file to the List dt.Add(r)

您现在几乎拥有与以前相同的东西-一组代表csv文件内容的对象。区别在于此路由具有已内置的方式,可将所有属性和集合保存到xml并再次读回。

© www.soinside.com 2019 - 2024. All rights reserved.