⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filopen.bas

📁 行业软件,该源代码为道路设计纵断面典型的计算程序,该程序界面友好,计算准确,值得借鉴
💻 BAS
字号:
Attribute VB_Name = "Module2"
'*** 带有同文件一起工作的过程的标准模块                 ***
'*** SDI 记事本示例应用程序的部件                       ***
'**********************************************************
Option Explicit

Sub FileOpenProc()
    Dim intRetVal
    Dim intResponse As Integer
    Dim strOpenFileName As String
    
    ' 如果文件已经更改,保存它
    If FState.Dirty = True Then
        intResponse = FileSave
        If intResponse = False Then Exit Sub
    End If
    On Error Resume Next
    
    frmSDI.CMDialog1.Filename = ""
    frmSDI.CMDialog1.ShowOpen
    'frmSDI.CMDialog1.Filter = "工程(*.zdm)|*.zdm|数据文件(*.dat)|*.dat|所有文件(*.*)|*.*"
    If Err <> 32755 Then    ' User chose Cancel.
        strOpenFileName = frmSDI.CMDialog1.Filename
        ' 如果文件大于65K, 则它不能被打开,所以取消此操作。
        If FileLen(strOpenFileName) > 65000 Then
            MsgBox "文件太大不能被打开。"
            Exit Sub
        End If
        
        OpenFile (strOpenFileName)
        UpdateFileMenu (strOpenFileName)
    End If
End Sub

Function GetFileName(Filename As Variant)
    ' 显示一个“另存为”对话框并且返回文件名。
    ' 如果用户选择取消,返回一个空的字符串。
    On Error Resume Next
    frmSDI.CMDialog1.Filename = Filename
    frmSDI.CMDialog1.ShowSave
    'frmSDI.CMDialog1.Filter = "工程(*.zdm)|*.zdm|数据文件(*.dat)|*.dat|所有文件(*.*)|*.*"
    If Err <> 32755 Then    ' 用户选择取消。
        GetFileName = frmSDI.CMDialog1.Filename
    Else
        GetFileName = ""
    End If
End Function

Function OnRecentFilesList(Filename) As Integer
    Dim i         ' 计数器变量

    For i = 1 To 4
        If frmSDI.mnuRecentFile(i).Caption = Filename Then
            OnRecentFilesList = True
            Exit Function
        End If
    Next i
    OnRecentFilesList = False
End Function

Sub OpenFile(Filename)
    Dim fIndex As Integer
    Close #1
    On Error Resume Next
    ' 打开选定的文件。
    Open Filename For Input As #1
    If Err Then
        MsgBox "不能打开文件: " + Filename
        Exit Sub
    End If
    ' 更改鼠标指针为沙漏。
    Screen.MousePointer = 11
    
    ' 更改窗体的标题并且显示新的文本。
    frmSDI.Caption = "SDI 记事本 - " & UCase(Filename)
    frmSDI.txtNote.Text = StrConv(InputB(LOF(1), 1), vbUnicode)
    FState.Dirty = False
    Close #1
    ' 重新设置鼠标指针
    Screen.MousePointer = 0
End Sub

Sub SaveFileAs(Filename)
    On Error Resume Next
    Dim strContents As String
    Close #1
    ' 打开文件。
    Open Filename For Output As #1
    ' 把记事本的内容放入一个变量。
    strContents = frmSDI.txtNote.Text
    ' 显示沙漏状的鼠标指针。
    Screen.MousePointer = 11
    ' 写变量内容到一个已保存的文件。
    Print #1, strContents
    Close #1
    ' 重新设置鼠标指针
    Screen.MousePointer = 0
    ' 设置窗体的标题。
    If Err Then
        MsgBox Error, 48, App.Title
    Else
        frmSDI.Caption = "SDI 记事本 - " & Filename
        ' 重新设置用过的标志。
        FState.Dirty = False
    End If
End Sub

Sub UpdateFileMenu(Filename)
        Dim intRetVal As Integer
        ' 检查打开的文件是否已经存在于文件菜单控件数组。
        intRetVal = OnRecentFilesList(Filename)
        If Not intRetVal Then
            ' 写打开的文件到注册表。
            WriteRecentFiles (Filename)
        End If
        ' 更新文件菜单控件数组中的最近打开文件列表。
        GetRecentFiles
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -