標題:

VB6的input問題

發問:

09060109 43, 6.6, 67, 8.7 090601101053, 6.9, 56, 9.5 09060111 744, 6.8, 55, 8.8 我的文字檔大概像上面這個一樣 使用input #401, u1, u2, u3, u4, u5 會造成第2列變成只有4個值,(出現錯誤) 文字檔的第一項是不變的(yymmddhh) 但其他都是不固定的。 如果在不改變文字檔的狀況下 (改文字檔更麻煩,而且我只是引用別人的資料....) 那該怎麼讀檔比較不會出現錯誤? 更新: 咦~可是我是要算成5個值阿! yymmddhh跟第一個值都是要用的.... 之後要拿來比對、運算

最佳解美容補習班答:

讀檔就照ts大大用的方法就行了 至於要分隔第一個值和時間 就用mid和len來完成吧 '存放日期的型態 Private Type MyDate yy As Integer mm As Integer dd As Integer hh As Integer End Type '你所需的第一個值 Dim V As Long '從第一個陣列元素中取值 Private Sub Command1_Click() Dim MD As MyDate MD.yy = Mid(x(0), 1, 2) MD.mm = Mid(x(0), 3, 2) MD.dd = Mid(x(0), 5, 2) MD.hh = Mid(x(0), 7, 2) V = Mid(x(0), 9, Len(x(0)) - 8) End Sub

其他解答:

這是常見的不規則型資料檔 處理這種資料檔一般仍可在不規則中找出規則來 從檔案結構來看 每筆資料是由五個數據所組成, 第一個很明顯是日期, 後面四個是數值, 其中日期跟第二個數值並沒有明顯的分隔碼, 以至於你用 input # 時會出問題, 但只要瞭解每筆都是這樣的情況的話, 使用input # 仍是可以解決的, 只是要多一道分解手續 參考以下 dim c() as single, b(4),d as string, a as integer '宣告動態陣列,及暫存變數陣列 ' ----------------確認檔案的總筆數 open "檔名" for input as #1 a=0 while not eof(1) line input #1,d a=a+1 wend close '--------------重新宣告陣列 redim c(a,5) open "檔名" for input as #1 a=0 while not eof(1) a=a+1 '讀入一筆資料 for i= 1 to 4 '每筆的分割目前只有四個 input #1,b(i) next 大衛美語 '-------------------拆解成五個並放入c() 陣列 c(a,1)=val(left(b(1),8)) c(a,2)=val(trim(mid(b(1),9))) c(a,3)=val(b(2)) c(a,4)=val(b(3)) c(a,5)=val(b(4)) wend close 這樣你的資料檔就正確完整的讀入c()數值陣列中了|||||Line input#401, T '讀一行 X = Split(T,",") ' T值會依","分開成陣列 X 裡 EX:090601101053, 6.9, 56, 9.5 X(0) = 090601101053 X(1) = 6.9 X(2) = 56 X(3) = 9.5 陣列初始都是從 0 開始,所有陣列都是字串。加油!英文翻譯日文3A8EEB5CD5F28899
arrow
arrow
    全站熱搜

    童怡孜昏鳳奎敏慶 發表在 痞客邦 留言(0) 人氣()