台灣最大程式設計社群網站
線上人數
804
 
會員總數:241867
討論主題:187137
歡迎您免費加入會員
討論區列表 >> VB.NET >> 將txt 或excel 讀入 並儲存成陣列
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
將txt 或excel 讀入 並儲存成陣列
價值 : 50 QP  點閱數:181 回應數:10

樓主

黃仲子
門外漢
0 1
40 4
發送站內信

各位前輩好


我想做一個程式
能夠在 記事本txt 或 excel中 輸入元素
再透過VB將檔案打開 並將內容以陣列的方式秀出來
主要目的是想讓秀出來的陣列 能夠做後續的陣列計算...

目前我有 可以輸入 陣列階數N 以及元素 的程式

勉強將記事本內容秀出來 or 用Msgbox呈現元素

也有在網路上找到能夠將txt/excel開啟或讀入的參考
但自己嘗試好像還是沒辦法把內容結合 達到想要的結果


小弟基礎不好 還請大家多多指點指點!


搜尋相關Tags的文章: [ 陣列 ] ,
本篇文章發表於2018-02-06 00:23
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
不換行的話,
要用 Console.Write(string) 輸出
然後再一個 Console.WriteLine() 換行
本篇文章回覆於2018-02-06 07:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

練武功
檢舉此回應
Dim inputdata(2, 2) As Single
Dim alltxt As String = My.Computer.FileSystem.ReadAllText("") '把所有的文字檔讀入成字串
Dim row1() As String = Split(alltxt, vbNewLine) '把字串切割成許多橫列
Dim column1(1) As String
For i = 0 To row1.Count - 1 '把每一個橫列切割一欄欄數字字串
column1 = Split(row1(i), ",")
For j = 0 To column1.Count - 1
inputdata(i, j) = Val(column1(j)) '把數字字串存入陣列
Next
Next
本篇文章回覆於2018-02-06 09:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

黃仲子
檢舉此回應
回小魚:

這是我的程式碼

如果照你的方法的話 該怎麼樣改呢?
本篇文章回覆於2018-02-07 23:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

黃仲子
檢舉此回應
回練武功:

把txt文字檔讀入後再存入陣列的概念懂了!

但迴圈的部分還有點不太清楚...
假設陣列為3階2維陣列 txt中輸入9個元素
1,3,8
9,8,5
0,6,7(假設這樣)

那這樣row1的部分 是把元素換行作為分割成9列嗎?

還是遇到換行 就自動分割成列字串
遇到 ,逗點 就分割成行字串?

但結果還是索引在陣列之外...
是不是我哪部分理解錯誤了?
本篇文章回覆於2018-02-08 00:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

小魚
檢舉此回應
Console.ReadLine()拿掉,那段應該留在最後,不過我習慣用Console.ReadKey()

已經很接近了,主要是迴圈那邊要改一下,改完如下



畫面如下
本篇文章回覆於2018-02-08 00:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

練武功
檢舉此回應
按照你的例子,切割完的row1個元素值應該=
row1(0)="1,3,8"
row1(1)="9,8,5"
row1(2)="0,6,7"

這裡容易出現的錯誤是你的txt內容在"0,6,7"最後一列又按一個Enter,結果row1切割完多出row1(3)=空白
而inputdata只有設定到2,所以會產生錯誤。
你可以在Dim row1() As String =....這行下方多加個
redim inputdata(row1.count-1,2)
應該就不會出現錯誤。不過陣列各維的長度會和你的預想不同。
所以最好檢查txt內容是不是多一列。如同5樓的畫面,txt內容的游標在第4列。
本篇文章回覆於2018-02-08 09:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

黃仲子
檢舉此回應
回小魚:

原來直接把換行部分改掉 加上空白就行了
害我一直想好久
感謝你!

回練武功:

懂你意思了!
原來txt編輯的結果也有差
但txt編輯的陣列維度似乎會被程式宣告的限制
(例如txt繼續輸入3、4、5階...以上)
也謝謝你的回答!
本篇文章回覆於2018-02-08 15:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小魚
檢舉此回應
如果要轉成數字做運算,因為不知道確切數量,我習慣用List來接資料

宣告一個List


增加一個項目,這裡是利用回圈內的String


加入一個項目


顯示List內容


大概是這樣的,
其他的變化就請自己想了,
視需求可以做不同的變化。
本篇文章回覆於2018-02-08 19:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

小魚
檢舉此回應
因為你有小數,
所以我用Decimal來接資料,
不用Integer來接資料。
本篇文章回覆於2018-02-08 19:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

黃仲子
檢舉此回應
謝謝小魚和練武功
程式終於能夠跑出我要的結果了!!
本篇文章回覆於2018-02-14 00:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.