none
VB6 Random 檔案存取 RRS feed

  • 問題

  • 在寫入的時候 都正常  但讀取卻錯誤

    Type sss
        room As String * 3 
        o As String * 1 '-
        number As String * 2 
        oo As String * 1 '=
        mem As String * 4 '    
        next As String * 2 '
    End Type

    'form
    Dim p As sss
    Private Sub Form_Load()
         p.o = "-"
         p.oo = "="
         p.next = vbCrLf
    End Sub
    
    
    Private Sub Command3_Click()'讀取
         Open "1.txt" For Random As #2 Len = Len(p)
         While Not (EOF(2))
              n = n + 1
              Get #2, n, p
              msgbox p.number    '這裡拿不到號碼
              Text1(p.number).Text = p.mem   '錯誤出現在這行   型態錯誤
         Wend
         Close #2
    End Sub
    
    Private Sub Command4_Click()'寫入
         p.room = 111
         p.number = 34
         p.mem = 333
         Open "1.txt" For Random As #2 Len = Len(p)
         Put #2, 1, p
         Close #2
    End Sub
    1.txt
    寫入後  手動打開 是正常
    111-34=333

    但讀取卻讀不出來

    只有寫入一筆
    2009年11月9日 上午 09:46

解答

  • 文字檔只有一筆資料?您迴圈的動作是多餘的,讀一次,還不到檔尾,到檔尾時,讀入是空資料,造成型態不符,把迴圈註解吧...
    • 已標示為解答 為什麼 2009年11月10日 上午 05:12
    2009年11月9日 下午 12:51

所有回覆

  • Hi!

    Text1(p.number).Text = p.mem

    p.number 是 string,也許先轉型成數值試試看


    Windows 7 多點觸控設計大賽
    2009年11月9日 上午 10:09
    版主
  • 讀取那  
    Dim pp as string


    pp=p.number

    後面換成pp   是可以讀到

    但是還是出現錯誤耶...

    執行階段錯誤 '13':
    型態不符


    Text1(p.number).Text = p.mem   '一樣出現在這行
    
    2009年11月9日 上午 10:16
  • 文字檔只有一筆資料?您迴圈的動作是多餘的,讀一次,還不到檔尾,到檔尾時,讀入是空資料,造成型態不符,把迴圈註解吧...
    • 已標示為解答 為什麼 2009年11月10日 上午 05:12
    2009年11月9日 下午 12:51