注册 登录
编程论坛 VB6论坛

VB6 存取TXT檔範例

kedian1968 发布于 2022-02-21 13:39, 2130 次点击
'全域變數
Private 路徑 As String, 內容 As String, 檔名 As String

Private Sub Form_Load() '主視窗啟動執行
    內容 = Text1.Text
    路徑 = Text2.Text
    檔名 = Text3.Text
End Sub

Private Sub Text1_Change() '變更時更新參數
    If Text1.CausesValidation Then 內容 = Text1.Text
End Sub

Private Sub Text2_Change() '變更時更新參數
    If Text2.CausesValidation Then 路徑 = Text2.Text
End Sub

Private Sub Text3_Change() '失焦後執行
    If Text3.CausesValidation Then 檔名 = Text3.Text
End Sub

Private Function 寫入TXT(ByVal OutputFilePath As String, Content As String) '路徑 ,內容
    Open OutputFilePath For Output As #2 ' 開啟 OutputFilePath 文字檔,使用編號 #2 檔案代碼
    Print #2, Content ' 將 Content 的內容寫入編號 #2 的檔案
    Close #2 ' 關閉編號 #2 檔案
End Function

Private Sub Command1_Click() '按鈕
    檢查目錄 (路徑)
    Call 寫入TXT(路徑 & 檔名, 內容)
    Me.Print 讀取TXT(路徑 & 檔名)
End Sub

Private Sub Command2_Click()
    If 檢查目錄(路徑) Then
        Me.Print "無目錄已建立"
    Else
        Me.Print "找到目錄"
    End If
   
    If 檢查檔案(路徑 & 檔名) Then
        Me.Print "找不到檔案"
    Else
        Me.Print "找到檔案"
    End If
End Sub

Private Function 讀取TXT(ByVal FilePath As String) '路徑
    Dim StrContent As String '讀取暫存
    StrContent = ""
    Open FilePath For Input As #1 ' 開啟 FilePath 文字檔,使用編號 #1 檔案代碼
    Do Until EOF(1) ' 執行迴圈,直到編號 #1 檔案遇到結尾為止
        Line Input #1, LineFromFile ' 從編號 #1 檔案讀取一行資料
        StrContent = StrContent & LineFromFile & " " ' 輸出一行資料
    Loop
    讀取TXT = StrContent
    Close #1 ' 關閉編號 #1 檔案
End Function

Private Function 檢查目錄(ByVal output_dir As String) '路徑
    檢查目錄 = 0
    If Dir(output_dir, vbDirectory) = "" Then ' 若目的地目錄不存在
        MkDir (output_dir) ' 建立新的目錄
        檢查目錄 = 1
    End If
End Function

Private Function 檢查檔案(ByVal check_file As String) '路徑
    檢查檔案 = 0
    If Dir$(check_file) = "" Then 檢查檔案 = 1
End Function
只有本站会员才能查看附件,请 登录
3 回复
#2
约定的童话2022-02-21 15:24
标题上面加个【分享】
#3
chenyucheng2022-07-03 08:52
修改代码:防止有中文变量名/函数名等后可能引起编译错误,并把中文注释翻成简体中文
防止有中文变量名/函数名等后可能引起编译错误,并把中文注释翻成简体中文:
程序代码:
'全域变数
Private lujing As String, neirong As String, dangming As String
'lujing:路径; neirong:内容; dangming:档名.

Private Sub Form_Load() '主视窗启动执行
    neirong = Text1.Text
    lujing = Text2.Text
    dangming = Text3.Text
End Sub

Private Sub Text1_Change() '变更时更新参数
    If Text1.CausesValidation Then neirong = Text1.Text
End Sub

Private Sub Text2_Change() '变更时更新参数
    If Text2.CausesValidation Then lujing = Text2.Text
End Sub

Private Sub Text3_Change() '失焦后执行
    If Text3.CausesValidation Then dangming = Text3.Text
End Sub

'xrTXT:写入TXT
Private Function xrTXT(ByVal OutputFilePath As String, Content As String) '路径 ,内容
    Open OutputFilePath For Output As #2 ' 开启 OutputFilePath 文字档,使用编号 #2 档案代码
    Print #2, Content ' 将 Content 的内容写入编号 #2 的档案
    Close #2 ' 关闭编号 #2 档案
End Function

Private Sub Command1_Click() '按钮
    jcml (lujing)
    Call xrTXT(lujing & dangming, neirong)
    Me.Print dcTXT(lujing & dangming)
End Sub

Private Sub Command2_Click()
    If jcml(lujing) Then
        Me.Print "无目录已建立"
    Else
        Me.Print "找到目录"
    End If
   
    If jcda(lujing & dangming) Then
        Me.Print "找不到档案"
    Else
        Me.Print "找到档案"
    End If
End Sub

'dcTXT:读取TXT
Private Function dcTXT(ByVal FilePath As String) '路径
    Dim StrContent As String '读取暂存
    StrContent = ""
    Open FilePath For Input As #1 ' 开启 FilePath 文字档,使用编号 #1 档案代码
    Do Until EOF(1) ' 执行回圈,直到编号 #1 档案遇到结尾为止
        Line Input #1, LineFromFile ' 从编号 #1 档案读取一行资料
        StrContent = StrContent & LineFromFile & " " ' 输出一行资料
    Loop
    dcTXT = StrContent
    Close #1 ' 关闭编号 #1 档案
End Function

'jcml:检查目录
Private Function jcml(ByVal output_dir As String) '路径
    jcml = 0
    If Dir(output_dir, vbDirectory) = "" Then ' 若目的地目录不存在
        MkDir (output_dir) ' 建立新的目录
        jcml = 1
    End If
End Function

'jcda:检查档案
Private Function jcda(ByVal check_file As String) '路径
    jcda = 0
    If Dir$(check_file) = "" Then jcda = 1
End Function


[此贴子已经被作者于2022-7-3 08:55编辑过]

#4
风吹过b2022-07-03 09:37
VB6  支持中文标识符。
然后这些函数,返回类型都没申明,需要申明下,最好是申明返回逻辑类型。
没有返回值的 定义为 过程。
1