史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   關於文字檔案覆寫的問題 for VB (http://forum.slime.com.tw/thread185253.html)

mini 2006-09-05 04:36 PM

關於文字檔案覆寫的問題 for VB
 
這個疑問已經待在心裡很久了,問題詳述如下

如果有一個檔案裡面有幾行內容: (===虛線不算)
====[c:\test.txt]====
ABCDEFG
1234567890
# #% %
hijklmnopqr
=================

當程式欲刪除
# #% % 這一行,變成
====[c:\test.txt]====
ABCDEFG
1234567890
hijklmnopqr
=================

方法是
語法:

Dim gstrText As String, vtLineText As Variant

Open "c:\test.txt" For Binary As #1
  gstrText = StrConv(InputB(LOF(1), #1), vbUnicode)
Close #1
Kill "c:\test.txt"
vtLineText = Split(gstrText, VbNewLine)

Open "c:\test.txt" For Binary As #1
  Put #1, ,CStr(vtLineText(0) & VbNewLine & vtLineText(1) & VbNewLine & vtLineText(3))
Close #1

問題來了
能否不刪除檔案 (Kill "c:\test.txt")
而辦到覆寫的需求

提示:
.如果不執行 Kill "c:\test.txt",而直接存檔,會變成
====[c:\test.txt]====
ABCDEFG
1234567890
hijklmnopqrijklmnopqr
=================
多了紅色這一段
編輯前、後大小都是 42 Byte

劍痞憶秋年 2006-09-06 04:26 PM

改成以下方式,不知道可否接受
因為 put 我不熟(哈哈)
語法:

Dim gstrText As String, vtLineText As Variant
Dim JetFile_1 As String, JetStr_Temp As String
Dim JetFileNo1 As Integer

JetFile_1 = "c:\test.txt"
JetFileNo1 = FreeFile
'Open "c:\test.txt" For Binary As JetFileNo1
Open "c:\test.txt" For Input As JetFileNo1
  gstrText = StrConv(InputB(LOF(1), JetFileNo1), vbUnicode)
Close JetFileNo1
'Kill "c:\test.txt"
vtLineText = Split(gstrText, vbNewLine)

JetFileNo1 = FreeFile

'Open "c:\test.txt" For Binary As #1
Open JetFile_1 For Output As JetFileNo1
JetStr_Temp = CStr(vtLineText(0) & vbNewLine & vtLineText(1) & vbNewLine & vtLineText(3))
'  Put #JetFileNo1, , JetStr_Temp
  Print #JetFileNo1, JetStr_Temp
Close JetFileNo1


mini 2006-09-07 04:26 PM

試了一下 OK

很感謝您的答案
如此將幫我解決了很多問題
說真的自己還真的沒注意到 Input、Output 能保留文件格式的說...是一大收穫

劍痞憶秋年 2006-09-08 12:07 AM

有幫助,那真是太好了!!!:n3:
劣者倒是很少用/根本沒想到什麼需要用 PUT 說(一方面也是不熟啦)
印象中是 和 循序/隨機 有關(高中上的,算很久的記憶了)


所有時間均為台北時間。現在的時間是 09:35 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1