【问题标题】:Array Calculation with CSV file使用 CSV 文件进行数组计算
【发布时间】:2011-12-04 18:42:44
【问题描述】:

我正在尝试处理和解析 CSV 文件。现在我让它接受并产生这样的东西:

程序加载 csv 并将数据复制到一个数组中:

ReDim strarray(num_rows, num_cols)
For x = 0 To num_rows
  strline = strlines(x).Split(",")
  For y = 0 To num_cols
    strarray(x, y) = strline(y)
  Next
Next

CSV 文件数据是非常基本的格式,包含两列和 x 行数:

212, 343
324, 232  

等等。我想我的主要问题是尝试对特定列中的所有值执行计算。首先,我只是想弄清楚如何隔离列,并发现通过使用 MsgBox(strarray(x, num_cols)) 它将 msgbox 第二列中的所有内容两次。我只是想尝试了解如何执行基本计算,例如将第一列中的每个值乘以 2,将第二列中的每个值乘以 3。

【问题讨论】:

  • 注意:CSV 文件的逗号后面不能有空格。
  • user1079506:不客气。另外,由于您是 StackOverflow 的新手,我想通知您,您可以通过选中答案旁边的勾号来接受对您帮助最大的答案。

标签: vb.net arrays csv


【解决方案1】:

首先:在 VB 中,数组从 0 到项目数减 1。但是您将指定最大索引,而不是大小:

Dim x As String() = new String(N-1) 'Where N is the number of items.
Dim y As String() = new String(MAX) 'Where MAX is the highest index.

你有整数。所以你必须声明:

Dim matrix As Integer(,) = new Integer(num_rows-1, num_cols-1)

然后填写:

For row As Integer = 0 To num_rows-1
    Dim strline As String() = strlines(row).Split(",")
    For col As Integer = 0 To num_cols-1
        matrix(row, col) = Integer.Parse(strline(col))
    Next                 
Next 

计算示例:

For row As Integer = 0 To num_rows-1
    matrix(row,0) *= 2
    matrix(row,1) *= 3
Next

【讨论】:

    猜你喜欢
    • 2011-10-18
    • 2014-09-07
    • 2017-07-24
    • 2017-08-11
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2012-11-20
    相关资源
    最近更新 更多