|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2005-08-18, 02:14 PM | #1 |
註冊會員
|
如何用VB6.0寫讀CSV檔?
請問大大們,我手邊有一個CSV檔與一個commandbutton,按下CommandButton後出現一個開啟檔案的對話框(用來指定檔案路徑及檔案)後,將指定的csv檔資料讀進來,請問我該怎麼用VB實現呢@@?
|
送花文章: 0,
|
2005-08-18, 11:22 PM | #2 (permalink) |
長老會員
|
Dim P As String
Dim III As Integer, JJJ As Integer Dim JetTemp$ Dim AA$() With CommonDialog1 .CancelError = True .Flags = cdlOFNOverwritePrompt .DialogTitle = "選擇儲存路徑及檔名" .Filter = "Excel CSV File (*.csv)|*.csv" .InitDir = "c:\" .FileName = "Out" & ".CSV" .ShowOpen P = .FileName End With If Dir(P) = "" Then Exit Sub III = FreeFile Open P For Input As #III Do While Not EOF(III) Line Input #III, JetTemp$ AA() = Split(JetTemp, ",") For JJJ = LBound(AA) To UBound(AA) Debug.Print JJJ & "=" & AA(JJJ) Next JJJ Loop Close #III 在迴圈中的 AA(JJJ) 即是 每一個櫚位值 試看看吧,再改成泥要的結果 |
__________________ 一切有為法 如夢幻泡影 如露亦如電 應作如是觀 |
|
送花文章: 150,
|
2005-08-19, 04:40 AM | #3 (permalink) |
註冊會員
|
謝謝大大解答..
最後實際上在run的時候,會變成循序讀檔在第一次的input時,就把所有的資料讀了進來,也就是所有csv資料都塞進去同一個變數之中,之後剩餘的參數都是空的 因此只好硬著頭便慢慢一步一步把資料給分解出來 dim point(1 To 256),sp dim num,num1 . . Line Input #1, sp . For num = 1 To 256 '事先知道csv資料只有256筆 Do Until Mid(sp, num1, 1) = Chr(10) 'csv資料是以chr(10)隔開,若讀出資料不等於chr(10)則持續迴圈 point(num) = point(num) + Mid(sp, num1, 1) '將SP內的資料由最左邊開始慢慢逐一取出並存進point(num)內 num1 = num1 + 1 Loop num1 = num1 + 1 Next 最後run下來就可以把csv的資料慢慢分解回num(1 to 256)陣列之內 |
送花文章: 0,
|
2005-08-22, 03:04 PM | #8 (permalink) | |
長老會員
|
引用:
真的沒分隔符號就真的沒辦法了∼∼(沒 分隔符號的 CSV ==> 那不就是亂七八糟的 Data) 不過這倒是劣者沒注意到的問題,所以再 SPLIT 之前最好先 用 INSTR 檢查一下字串中有沒有這個 SPLIT 函式的第二個參數(=分隔字元),再做 SPLIT ,不然會不知道怎麼回事∼∼ |
|
送花文章: 150,
|