VB6讀寫文件操作大全
—— ---------------------------------
'write file
Dim nHandle As Integer, fName As String
fName = "d:\1.txt"
nHandle = FreeFile
Open fName For Output As #nHandle
Print #nHandle, "00000"
Print #nHandle, "88888"
Close nHandle
—— ----------------------------------
'read file
nHandle = FreeFile
Open fName For Input As #nHandle
cnt = 0
Do Until EOF(nHandle)
Line Input #nHandle, NewLine
Debug.Print NewLine
Loop
Close nHandle
—— -------------------------------------------
總結一下VB6的文件操作,省得要用的時候又到處查找。
一、文件類型
1、順序文件(文本文件) :以ASCII碼形式存放的文件。似乎還有Unicode碼存放的,有沒有BCD碼的呢?
2、隨機訪問文件:這種文件格式很有特點:文件中存放若干條等長的單元(也可以說是記錄);每個單元包含同類型、等數量、等長度的數據項;文件中,除了字符串以ASCII碼存放之外, 其它都以二進制形式直接存放,節省存儲空間。這種文件類型非常適合存儲需要和軟件交互的數據,如結構體數據、類數據等。這也是VB特有的文件訪問方式。
3、二進制文件:以二進制形式存放,PE程序文件一般都是這個類型。
二、操作方法
1、順序文件
打開方式: Open 文件名 For Input | Output | Append As [#]文件號
Input打開讀入,文件不存在報錯。Output打開覆蓋寫入,文件不存在則創建。Append打開追加寫入,文件不存在則創建。
讀行: Line Input #文件號, 字符串變量,讀一行數據存入字符串變量,數據包括空格、Tab、等,不包括回車符和換行符。
Input #文件號, 變量1[, | ;] [變量2]...
這種方式可以存入多個變量,而且變量類型不限於字符串型。
寫: Print #文件號, 參數1[, | ;] [參數2]...
將各參數逐個寫入文件。參數間用逗號隔開時,文件中相應插入多個空格;用分號隔開時,插入一個空格。可以Spc(n)、Tab(n)等進行排版。
Write #文件號, 參數1[, | ;] [參數2]...
這種寫入方式將自動添加界定符,對不同參數的類型加以界定。
2、隨機訪問文件
打開: Open 文件名 [For Random] As [#]文件號 Len = 記錄長度
For Random可以省略,文件不存在則創建,讀寫都是這種打開方式。Len是文件中記錄的一條長度,用以識別記錄的開始與結束,經常用Len(記錄名)來獲取長度。
讀: Get [#]文件號, [記錄號], 變量
根據記錄號讀一條記錄存入變量,可以是系統類型的Integer、Single、String等等,也可以是自定義類型結構體、類等。記錄號省略時從打開以后最后一次讀取的末端開始讀取記錄。
寫: Put [#]文件號, [記錄號], 表達式
將表達式中的數據寫入文件,表達式可以是各種變量的組合,中間用逗號隔開。該組數據寫入記錄號對應的位置,記錄號省略時從打開以后最后一次寫入的末端開始寫入記錄。
3、二進制文件
打開: Open 文件名 For Binary As [#]文件號
文件不存在則創建,讀寫都是這種打開方式。當然也可以用來打開文本文件,讀出來將不知所雲!讀一條記錄存入變量,可以是系統類型的Integer、Single、String等等,也可以是自定義類型結構體、類等。記錄號省略時從打開以后最后一次讀取的末端開始讀取記錄。
讀: Get [#]文件號, [讀位置], 變量
從“讀位置”開始讀取數據,讀入的長度等於變量的長度,一次讀一個。“讀位置”以字節為單位。“讀位置”省略時從打開以后最后一次寫入的末端開始讀入。
寫: Put [#]文件號, [寫位置], 表達式
將表達式中的數據寫入文件,表達式可以是各種變量的組合,中間用逗號隔開。該組數據寫入“寫位置”,“寫位置”以字節為單位。“寫位置”省略時從打開以后最后一次寫入的末端開始寫入。
三、操作權限
使用Input、Binary、Random模式訪問,可以同時對單個文件打開多個實例。使用Append和Output模式之前則必須確定文件只有一個實例。
Open 文件名 For 模式 [Access] [lock ] As [#]文件號 [len = 記錄長度]
對隨機存儲文件和二進制文件,可以設置文件的讀寫權限。access可寫成Read、Write、 Read Write,對應只讀、只寫、讀寫兼備。此項功能不適用於順序文件。
Lock | Unlock 文件號, [記錄| [起始記錄 To終止記錄]]
當指明lock標識后,可用以上代碼設置文件的共享權限。對順序文件, [記錄| [起始記錄 To終止記錄]]不起作用,將對整個文件生效;對隨機存儲文件,將對記錄標識中的部分進行權限鎖定或解鎖。
四、文件操作函數
以上部分可以實現文件操作的一些功能,但要完成如拷貝整個文件、查找文件是否已建立、取文件長度等功能,還需要一些文件操作函數來方便地實現。
Seek: Seek(文件號)
返回文件正在訪問的位置,返回值為長整型。對順序文件和二進制文件,返回值以字節為單位;對隨機訪問文件,返回值以記錄號為單位。
Seek: Seek [#]文件號,位置
定位文件到指定位置。位置單位同上所述。
Input: Input (字節數,[#]文件號)
從文件的訪問當前位置讀入指定字節數的數據。僅適用於順序文件和二進制文件。
EOF: EOF(文件號)
判斷文件的訪問位置是否在文件尾,如果是,返回True,否則,返回False。
LOF: LOF(文件號)
返回文件長度,單位為字節。
FileLen: FileLen (文件名)
返回文件名對應文件的長度,單位是字節。該函數取磁盤文件標識中的長度,即文件打開前的長度,可以取未打開的文件長度。
GetAttr: GetAttr (Pathname)
返回指定文件或文件夾的屬性。
FileAttr: FileAttr (文件號)
返回文件號對應文件的打開方式。
GetDateTime:GetDateTime(Pathname)
返回文件被創建或修改的最后日期和時間。
Free: FreeFile[(0|1)]
返回未被占用的文件號,Free或Free(0)返回1~255之間未占用的文件號,Free(1)返回256~511之間未占用的文件。
Dir: Dir (Pathname [,Attributes])
測試指定路徑是否有某文件,Attributes附加文件屬性條件,取值vbNormal、vbReadOnly、vbHidden、vbSystem、vbVolume、vbDirectory。
Kill: Kill (文件名)
刪除指定文件,文件名可包含路徑。
FileCopy: FileCopy 源文件,目標文件
拷貝文件。
Name: Name 舊文件名 As 新文件名
文件重命名。前后路徑不一致時,操作為移動文件並重命名。
MkDir: MkDir path
新建文件夾。
RmDir: Rmdir path
刪除文件夾。
ChDrive: ChDrive Drive
改變當前驅動器 ChDrive "D"
CurDir: CurDir [(driver)]
返回當前工作路徑,指定driver則返回目標驅動器的當前工作路徑。