2014-10-19 65 views
0

我有一個包含以下內容的清單:一個人的名字,初始,和年齡,如:鑄造型的StreamReader字符串

懷特,J,23

鮑徹,男,30

庫切,G,23

我試圖做到以下幾點:

創建一個需要兩個參數的函數:PARAM eter 1是一個稱爲Age的整數,參數2是一個名爲fileName的字符串,它接受磁盤上的文件名。

該函數採用在年齡從一個文本框和文件名靜態類型到第二文本框(例如,C:\ nameList.txt)

該函數應掃描/讀取所指定的文件,並進行計數所有年齡相同的人。即如果在文本框中鍵入23,則會顯示「2」,因爲在上面的示例中,2人是23。

現在,我想這樣做使用以下邏輯:

  1. 我使用的StreamReader讀取文本文件和文件分配所有單詞 作爲一個字符串變量。
  2. 我會再然後,我將使用if-else語句環比textArray字符串變量分成數組
  3. 的許多元素 檢查,如果數組的索引年齡檢查 變量相匹配。
  4. 如果發現匹配則計數器變量設置爲1

從理論上講,這是簡單的,但我有一些問題,第1步這裏是我的第1步代碼:

 Function countAges(ByVal age As Integer, ByVal fileName As String) As Integer 

     'Get Info From File' 
     Dim textString As StreamReader 
     textString = New StreamReader(fileName) 
     textString.ReadToEnd() 
     textString.Close() 

     'index words to array' 
     Dim allTextArray() As String 
     allTextArray = textString.split 'HERE IS THE PROBLEM' 

當試圖將我從streamreader中獲取的文本拆分爲textString變量,我得到錯誤Split不是system.IO的成員。

問:

  • 您可以分配/施放StreamReader的文本字符串變量?如果是這樣, 如何?
  • 我在正確的軌道上嗎?或者我的邏輯有缺陷?

請記住我在回答VB時是新手。

+1

叫一隻狗不會叫它樹皮。 – 2014-10-19 15:25:35

+1

*你可以把一隻貓放在烤箱裏,但不會讓它變成餅乾* – Plutonix 2014-10-19 15:47:03

回答

1

您正在閱讀文件的內容並將其扔掉。 ReadToEnd方法不會將文件中的數據存儲在閱讀器內部的某個位置,而是將其作爲字符串返回。

放在一個變量的字符串:

Dim textString As StreamReader 
textString = New StreamReader(fileName) 
Dim text as String = textString.ReadToEnd() 
textString.Close() 

現在你可以使用字符串:

allTextArray = text.split 

(或許也重新命名textString的東西,更好地代表它到底是什麼,因爲它不是一個字符串,但StreamReader。)

+0

謝謝,非常感謝 – Marilee 2014-10-19 15:26:11