我有多个具有相似数据的文本文件,例如file1将具有以下条目:
test1,1400
然后file2将具有:
test1,2400
由于所有这些文件都是由不同的程序生成的,因此可以检查每个文本文件中的相似条目,例如使用上述文件,例如,我想从两个文件中查找test1并计算得分,然后将以下数据保存到另一个文本文件中:
test1,3800
我正在使用的编程语言是VB.NET,目前我已经使用以下方法读取了所有文件:
Dim Array1() As String = IO.File.ReadAllLines("path")
我当前的逻辑是将所有数据放入列表或KeyValuePair,列表中将存储用户的用户名以及他们的分数(此时将它们相加)。我目前已将每个文本文件中的所有数据读到一个数组,在FormLoad事件中,每个数组都已整理成一种形式,其中数据用逗号分隔符分隔。在程序开始时,我有一个输入框,它要求用户输入用户名并将其存储在名为UserInput的变量中。从那里,这是我需要帮助的目标,我需要程序从每个数组中获取价值并将其存储在另一个数组中,在该数组中,我可以使用他们的得分对每个用户的数据进行排序:For i = 0 to ar.length - 1
遍历数组并搜索“用户名”。
答案 0 :(得分:2)
您可以使用以下方法
plt.stackedplot()
上述方法会在您的桌面上创建一个新的文本文件“ output.txt”。
答案 1 :(得分:0)
AJD是正确的。您需要在发布之前尝试一下。我回答了,因为我想和Linq一起练习。由于您有2种不同类型的数据,因此按顺序排列一个类或结构(或使用数据库)。我通过将行分为字符串部分和整数部分来填充结构列表;设置结构的属性。您可以将任意数量的文件添加到列表中。我同时使用Linq方法和Loop方法进行了测试。
Structure TestData
Public TestName As String
Public TestScore As Integer
End Structure
Private TestList As New List(Of TestData)
Private Sub AddToList(path As String)
Dim arr() As String = File.ReadAllLines(path)
For Each line As String In arr
Dim arr2() As String = line.Split(","c)
Dim td As TestData
td.TestName = arr2(0)
td.TestScore = CInt(arr2(1).Trim)
TestList.Add(td)
Next
End Sub
Private Function GetSummWithLinq(NameOfTest As String) As Integer
Dim result As Integer = (From Score In TestList
Where Score.TestName = NameOfTest
Select Score.TestScore).Sum
Return result
End Function
Private Function GetSumWithLoop(NameOfTest As String) As Integer
Dim total As Integer
For Each item In TestList
If item.TestName = NameOfTest Then
total += item.TestScore
End If
Next
Return total
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim p As String = "C:\Users\SomeUser\Desktop\TestData.txt"
AddToList(p)
Dim a As Integer = GetSummWithLinq("test1")
MessageBox.Show($"The Linq method produces {a}")
Dim b As Integer = GetSumWithLoop("test1")
MessageBox.Show($"The Loop method produces {b}")
End Sub
编辑 我用来测试代码的TestData.txt文件。
test1, 314
test2, 740
test1, 700
test2, 200