使用input讀檔時
檔案若為
a b c
d e f
g h i
程式碼讀出的結果卻和 line input 相同
並非獨立讀取
a
b
c
d
e
f
g
h
i
而是
a b c
d e f
g h i
為什麼???
2006-09-08 19:52:25 · 4 個解答 · 發問者 凱翔 3 in 電腦與網際網路 ➔ 程式設計
那如果一定要用空格呢
要怎麼寫??
2006-09-09 07:26:02 · update #1
我試用了W.J.S的方法加上矩陣
應該OK
其他幾位大大說的讀取後切割要如何做??
2006-09-12 15:08:05 · update #2
空白本來就不是input時的分隔判定條件要達到你說的結果,檔案內容可以改為:a,b,cd,e,fg,h,i(逗號及換行符號才能做區隔!)
2006-09-09 11:38:04 補充:
因為你前面有說 [獨立讀取] & [又一定要用空格]兩者是有衝突的.所以目前答案是不行!除非你的撰寫條件改變...(比如改為整行讀取再分解...)
2006-09-12 02:38:05 補充:
W.J.S的方法是把指定符號剔除,仍不是真的以空白為分隔,如果遇到長度不固定也會破功(當然這是阿戊多想的~^^”)
如果真的要解..個人還是覺得line input + split 會比較適合完全解
2006-09-13 12:08:57 補充:
Dim a()Private Sub Form_Load()Open ”C:\Test.txt” For Input As #1k=0Do Until EOF(1)Line Input #1,tempb=Split(temp,” ”)ReDim Preserve a(k+UBound(b))For I=0 To UBound(b)a(k+I)=b(I)Next Ik=k+UBound(b)+1LoopCloseFor I=0 To UBound(a):Debug.Print a(I):Next IEnd Sub
2006-09-13 12:10:54 補充:
(以上程式碼因知識+顯示的問題,引號已改為全型,請自行改回半型引號)Test.txt 測試檔案內容為:a b cd e fg h iab cd ef gh ijk
2006-09-13 12:11:53 補充:
就醬~
2006-09-08 21:18:44 · answer #1 · answered by ? 7 · 0⤊ 0⤋
如果你的一行內要切割的東西是不規則的話我建議你這樣
on error resume next '遇到錯誤照樣給他跑下去@@"
dim s() as string '就是放你切割的
dim st as string '這是你要割的
dim x as integer '暫存變數
st="aa sfdf fdsd ggg" '隨你喜歡
s=split(st," ") '開始割
for x=0 to 99 step x+1 '隨便你喜歡設多少,X是最多的切割數
print s(x)'印出來
next
這樣子不管你喜歡切幾個只要不超過X就會印出
2006-09-17 08:29:27 · answer #2 · answered by 米老薯條 2 · 0⤊ 0⤋
Private Sub Command1_Click() Dim S$, I& Open "C:\Test.txt" For Input As #1 I = 1 Do Until EOF(1) S = Input(I, #1) If S <> Chr(13) And S <> Chr(10) And S <> Chr(32) Then Print S LoopEnd Sub
2006-09-11 13:53:57 · answer #3 · answered by W.J.S. 7 · 0⤊ 0⤋
input 會讀到和原始檔一樣的資料, 會得到這個結果是正常的, 可以在每一次回圈時加上 vbcrlf 來修正, 這樣就連空格也不用了.
如果一定要用空格, 用迴圈慢慢判斷, 如果下一字元是空格, 就換一行.
2006-09-10 14:10:14 · answer #4 · answered by x32768 5 · 0⤊ 0⤋