读书人

分隔符数字列相加有关问题?

发布时间: 2012-12-15 15:16:03 作者: rapoo

分隔符数字列相加问题????
例子:
111-554-142-211 ...
315-524-544-114 ...
351-778-454-414 ...
...

列相加意思:
111+315+351 ...=777
554+524+778 ...=777
142+544+454 ...=1140
211+114+414 ...=739

得出结果如下(列与列相加 得出结果):
777-1856-1140-739

说明:‘省略号’表示不固定“行”“列”
[最优解释]
同一个文件中,你的列数必须一致吧?


Dim sum() As Long, i As Long
Dim strLine As String, strItem() As String

Open App.Path & "\test.txt" For Input As #1
Line Input #1, strLine
strItem = Split(strLine, "-")
Redim sum(Ubound(strItem)) '测试列数
for i = 0 To Ubound(sum)
sum(i) = Val(strItem(i))
Next i
Do Until EOF(1)
Line Input #1, strLine
strItem = Split(strLine, "-")
If Ubound(strItem) = Ubound(sum) Then
For i = 0 To Ubound(sum)
sum(i) = sum(i) + Val(strItem(i))
Next i
End If
Loop
Close #1
strLine = ""
for i = 0 To Ubound(sum)
strLine = strLine & IIf(i = 0, "", "-") & CStr(sum(i))
Next i
Debug.Print strLine

[其他解释]
用split以“-”为分隔符把字串分割到数组,然后累加即可
[其他解释]
假定你的文本是在 .txt 文件中:

Dim sum1 As Long, sum2 As Long, sum3 As Long, sum4 As Long
Dim strLine As String, strItem() As String

Open App.Path & "\test.txt" For Input As #1
Do Until EOF(1)
Line Input #1, strLine
strItem = Split(strLine, "-")
If Ubound(strItem) = 3 Then
sum1 = sum1 + Val(strItem(0))
sum2 = sum2 + Val(strItem(1))
sum3 = sum3 + Val(strItem(2))
sum4 = sum4 + Val(strItem(3))
End If
Loop
Close #1

Debug.Print CStr(sum1) & "-" & CStr(sum2) & "-" CStr(sum3) & "-" & CStr(sum4)

[其他解释]
这种效果不太理想!!!太过局限!!
[其他解释]
你是说,每一行的列数都不一样?

[其他解释]
如果同一个文件中各行的列数不一样,那加法的规则是左对齐还是右对齐,抑或有更复杂的舍弃规则。你总得说明白吧。

其实也很简单,你根据例子可以自己改。没必要打那么多惊叹号。

大家是在帮你而已。

------其他解决方案--------------------


引用:
假定你的文本是在 .txt 文件中:
Visual Basic code?123456789101112131415161718Dim sum1 As Long, sum2 As Long, sum3 As Long, sum4 As LongDim strLine As String, strItem() As String Open App.Path & "……

对不起!谢谢你!这个怎么改成 strLine=text1 '手动输入值 然后计算
[其他解释]
不好意思 我水平有限!!谢谢你!

读书人网 >VB

热点推荐