寫程式的時候如果我要的數值在一個檔案裡面我要如何讀檔??能舉例教學一下嗎?
2004-12-23 13:47:23 · 3 個解答 · 發問者 Stone 6 in 電腦與網際網路 ➔ 程式設計
學vb一定要知道這個站,小瓜瓜粉厲害的http://vb.infoserv.com.tw/●我們使用Append模式與Output模式時,Write與Print的作用是把資料寫入檔案,如#2已開啟檔案,想把資料寫入#2檔案時:Write #2,資料1,資料2,......,資料n 或 Print #2,資料1,資料2,......,資料n;Write #已開啟的檔案編號, 資料1,資料2,......資料n,Print #已開啟的檔案編號, 資料1,資料2,......資料n,這兩個不同處: Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個存檔的試驗" Val1 = 7654321 Write #1, Str1, Val1 Str1 = "小瓜瓜VB調理包" Val1 = 1234567 Write #1, Str1, Val1 Close #1 End Sub●我們可以用記事本開啟 "c:\test.tmp",可以看到內容為 "這是一個存檔的試驗", 7654321"小瓜瓜VB調理包", 1234567●也就是說,Write依資料的型態把資料寫成文書檔。 Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個存檔的試驗" Val1 = 7654321 Print #1, Str1, Val1 Str1 = "小瓜瓜VB調理包" Val1 = 1234567 Print #1, Str1, Val1 Close #1 End Sub●我們可以用記事本開啟 "c:\test.tmp",可以看到內容為 這是一個存檔的試驗 7654321小瓜瓜VB調理包 1234567●也就是說,Print不論資料的型態,都把資料寫成同一行的文書檔。 ●Input是從一個已開啟的檔案裡讀取資料,如Input #3,變數1,變數2,......,變數n。 Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個存檔的試驗" Val1 = 7654321 Write #1, Str1, Val1 Str1 = "小瓜瓜VB調理包" Val1 = 1234567 Write #1, Str1, Val1 Close #1 Open "C:\test.tmp" For Input As #1 Input #1, Tmp1, Tmp2 '讀取第一筆 Msgbox Tmp1 & ":" & Tmp2 Input #1, Tmp1, Tmp2 '讀取第二筆 Msgbox Tmp1 & ":" & Tmp2 Close #1 End Sub●如果用Input讀取Write寫入的檔案時,Input的變數數量要與Write寫入的資料數量一致。 Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個存檔的試驗" Val1 = 7654321 Print #1, Str1, Val1 Str1 = "小瓜瓜VB調理包" Val1 = 1234567 Print #1, Str1, Val1 Close #1 Open "C:\test.tmp" For Input As #1 Input #1, Tmp1, Tmp2 '讀取第一筆 Msgbox Tmp1 & ":" & Tmp2 Input #1, Tmp1, Tmp2 '讀取第二筆 Msgbox Tmp1 & ":" & Tmp2 Close #1 End Sub●這一個程式結果無法執行,為什麼呢?。我們使用Print的方式會將兩筆資料寫成同一行,也就是變成了一行一筆資料,但我們指定要一行讀入兩筆資料,同一行裡已沒有第二筆資料可以讀,故會發生讀超過檔案的錯誤修改一下Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個存檔的試驗" Val1 = 7654321 Print #1, Str1, Val1 Str1 = "小瓜瓜VB調理包" Val1 = 1234567 Print #1, Str1, Val1 Close #1 Open "C:\test.tmp" For Input As #1 Input #1, Tmp1 '讀取第一筆 Msgbox Tmp1 Input #1, Tmp1 '讀取第二筆 Msgbox Tmp1 Close #1 End Sub ●若 Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個,存檔的試驗" Print #1, Str1 Str1 = "小瓜瓜,VB調理包" Print #1, Str1 Close #1 Open "C:\test.tmp" For Input As #1 Input #1, Tmp1 '讀取第一筆 Msgbox Tmp1 Input #1, Tmp1 '讀取第二筆 Msgbox Tmp1 Close #1 End Sub●讀入的資料卻只有"這是一個"、"小瓜瓜",為什麼?Input有一個習性,當它讀取的資料含有逗點字元時,它便會停止讀取資料,故資料會在逗點處中斷,解決法是使用Line Input。 Private Sub Command1_Click() Dim Str1 As String, Val1 As Long Open "C:\test.tmp" For Output As #1 Str1 = "這是一個 存檔的試驗" Print #1, Str1 Str1 = "小瓜瓜 VB調理包" Print #1, Str1 Close #1 Open "C:\test.tmp" For Input As #1 Line Input #1, Tmp1 '讀取第一筆 Msgbox Tmp1 Line Input #1, Tmp1 '讀取第二筆 Msgbox Tmp1 Close #1 End Sub ●很多網友都會很好奇..Line Input 與Input 那裡不同呢?LineInput指的是讀取一整列的資料,也就是讀到換行時結束,若是以 〝,〞當成分格符號時,這時就要用Input。
2004-12-24 04:49:43 · answer #1 · answered by ? 6 · 0⤊ 0⤋
VB研究小站已更換網址: http://www.infobox.idv.tw
2012-02-28 14:15:53 · answer #2 · answered by 小民 3 · 0⤊ 0⤋
關於以上的vb語法~那如果是用vc++來寫的話~要怎麼寫呢
2006-07-02 12:44:59 · answer #3 · answered by glass 1 · 0⤊ 0⤋