2010-04-22 22 views
1

我有這個文件。它存儲名稱,項目,他們存儲數據的一週以及項目花費的時間。這裏是一個例子如何分割這個文件中的數據vb6

"James","Project5","15/05/2010","3" 
"Matt","Project1","01/05/2010","5" 
"Ellie","Project5","24/04/2010","1" 
"Ellie","Project2","10/05/2010","3" 
"Matt","Project3","03/05/2010","4" 

我需要在窗體上打印不帶引號。在那裏它應該只顯示一次名稱,然後只顯示名稱下的項目。我看了tihs和分裂功能似乎很有趣

任何幫助將是好事。

+0

這功課?或者你是這個人的同一個人:http://stackoverflow.com/questions/2690505/how-to-split-the-data-in-this-file-vb6 – PaulG 2010-04-22 14:40:42

+0

我和那個人一樣: )和不,它不是作業 – Andeeh 2010-04-22 14:57:13

回答

1

Microsoft擁有CSV ADO提供程序。我認爲它與ADO的其餘部分一起安裝。這正是它設計要閱讀的格式。對於VB樣本,請參閱http://www.vb-helper.com/howto_ado_load_csv.html

+0

這是不必要的複雜。 VB6的內置文件I/O功能是您所需要的。 – raven 2010-04-22 15:46:30

1

我是否正確理解你的意思:你想跟蹤輸入的姓名,從而以這種方式重新排序數據?爲什麼不把數據讀入一個具有名稱,項目和其他信息的新類型的列表中,然後在打印之前進行分類?


雖然字典的解決方案是簡單的,這可能是一個更好的解決方案,如果你是建立一個類並實現的IComparer OK,這樣你可以對列表進行排序得到這個漂亮容易。

+0

這將是一個更好的方式來做到這一點,但我不認爲我有編程技巧來完成它。 – Andeeh 2010-04-22 14:40:25

2

創建一個Dictionary對象,然後將您找到的給定名稱的所有內容放入一個字典條目中。

然後在第二次迭代中打印出所有內容。

0

你可以閱讀每一行,去掉引號,拆分的逗號,然後處理數據的數組,你將留下:

Dim filenum As Integer 
Dim inputLine As String 
Dim data() As String 

filenum = FreeFile 
Open "U:\test.txt" For Input As #filenum 
Do While Not EOF(filenum) 
    Line Input #filenum, inputLine 
    inputLine = Replace(inputLine, Chr(34), vbNullString) 
    data = Split(inputLine, ",") 
    Debug.Print data(0), data(1), data(2), data(3) 
Loop 
Close #filenum 

或者你可以有輸入命令帶引號,並將數據讀入變量:

Dim filenum As Integer 
Dim name As String, project As String, dat As String, hours As String 

filenum = FreeFile 
Open "U:\test.txt" For Input As #filenum 
Do While Not EOF(filenum) 
    Input #filenum, name, project, dat, hours 
    Debug.Print name, project, dat, hours 
Loop 
Close #filenum