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

📄 vb_dos.frm

📁 VB6 Consol Window Demo
💻 FRM
📖 第 1 页 / 共 3 页
字号:
                        Print "对不起,表达式可能有错误!"
                    End If
                    
            ElseIf Left$(CmdStr, 13) = "CACLTRIANGLE " Then  '//* CACLTRIANGLE* // --计算三角形的面积 --
                    
                    Dim a1 As Integer                              '定义本子程式内所要用的变量
                    Dim b1 As Integer
                    Dim c1 As Integer
                    
                    Open "TEMP.TMP" For Output As #1
                    Print #1, Right$(CmdStr, Len(CmdStr) - 12)
                    Close #1
                    DoEvents
                    Open "TEMP.TMP" For Input As #2
                    Input #2, a1, b1, c1
                    Close #2
                    DoEvents: Kill "temp.tmp"
                    If a1 + b1 <= c1 Or b1 + c1 <= a1 Or c1 + a1 <= b1 Then
                        Print "此三角形不存在!"
                Else
                        p = (a1 + b1 + c1) / 2
                        m = Sqr(p * (p - a1) * (p - b1) * (p - c1))
                        Print "这个三角形的面积为"; m
                    End If
                    
            ElseIf Left$(CmdStr, 12) = "CACLDIVISOR " Then   '//* CACLDIVISOR *// -- 求两个数的最大公约数 --
                    Open "TEMP.TMP" For Output As #1
                    Print #1, Right$(CmdStr, Len(CmdStr) - 12)
                    Close #1
                    DoEvents
                    Open "TEMP.TMP" For Input As #2
                    Input #2, m, n
                    Close #2
                    DoEvents: Kill "temp.tmp"
                    i = m: j = n                                  '将M,N的值放到另外两个变量中(因为M与N在运算过程中会改变)
                    If m <> 0 And n <> 0 Then
                        p = m Mod n
                        Do While p <> 0
                            m = n
                            n = p
                            p = m Mod n
                        Loop
                        Print i; "与"; j; "的最大公约数是:"; n     '取出记录中的变量与结果
                Else
                        Print "求一个数与人与0的最大公约数无意义!"
                    End If
                    
            ElseIf Left$(CmdStr, 12) = "CACLNATURAL " Then   '//* CACLNATURAL *// -- 分解自然数 --
                    
                    Dim z As Integer
                    Dim f As Integer
                    Dim l As Integer
                    
                    Dim s As String                               '定义此段程式所要的变量
                    
                    p = Val(Right$(CmdStr, Len(CmdStr) - 12))
                    z = p + 1
                    f = 0
                    s = Str$(p) + " = "
                    For l = 2 To p
                        Do
                            If p / l = p \ l Then
                                p = p / l
                                If l < z Then
                                    If f = 0 Then
                                        s = s + Str$(l)
                                Else
                                        s = s + " * " + Str$(l)
                                    End If
                                End If
                                f = f + 1
                        Else
                                Exit Do
                            End If
                        Loop
                    Next l
                    If z - 1 = 1 Then                             'p=1时,以下分别处理p=2,3时的状态
                        s = "no meaning"
                    End If
                    If z - 1 = 2 Or z - 1 = 3 Then                '这里用z是因为P的值在前面有变化所以用z则起还原p的作用.
                        s = s + " (prime)"
                    End If
                    Print s
                    
            ElseIf Left$(CmdStr, 3) = "CD " Then             '//* CD * //        ,同命令ChDir
                    ParStr = Right$(CmdStr, Len(CmdStr) - 3)
                    ChDir ParStr                                  '改变目录
                    
            ElseIf Left$(CmdStr, 5) = "COPY " Then           '//* COPY * //      复制文件
                    FileN = Right$(CmdStr, Len(CmdStr) - 5)
                    If Dir$(FileN) <> "" Then
                        j = Len(FileN)                             '取得全路径文件名长度
                        For i = j To 1 Step -1                     '从后往前读取每个字符
                            tmpStr = Mid$(FileN, i, 1)
                            If tmpStr = "\" Then                     '找到第一个"\",后面的就是文件名
                                FileNew = Right$(FileN, j - i)
                                Exit For                               '已找到文件名,则退出循环
                            End If
                        Next i
                        DoEvents
                        Print "正在将文件"; FileN; "复制到"; App.Path; "\"; FileNew
                        FileCopy FileN, App.Path & "\" & FileNew
                        DoEvents                                   '等待复制完成并提示
                        Print "文件已复制成功!"
                Else
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    
            ElseIf Left$(CmdStr, 6) = "COLOR " Then          '//* COLOR * //
                    ParStr = Right$(CmdStr, Len(CmdStr) - 6)
                    If Val(ParStr) = 0 Then                       '如果前景被设为黑色,则背景设为白色
                        Me.BackColor = QBColor(15)
                ElseIf Val(ParStr) = 15 Then                  '如果前景被设为白色,则背景设为黑色
                        Me.BackColor = QBColor(0)
                ElseIf Val(ParStr) > 15 Then                  '如果超过范围则提示
                        Print "不存在的色彩代码(正确范围:1-15)."
                        GoTo DosPrompt
                    End If
                    Me.ForeColor = QBColor(Val(ParStr))           '设定前景色彩
                    
            ElseIf Left$(CmdStr, 8) = "CHDRIVE " Then        '//*CHDRIVE * //
                    ParStr = Right$(CmdStr, Len(CmdStr) - 8)
                    ChDrive ParStr                                '改变驱动器
                    
            ElseIf Left$(CmdStr, 6) = "CHDIR " Then          '//* CHDIR * //
                    ParStr = Right$(CmdStr, Len(CmdStr) - 6)
                    ChDir ParStr                                  '改变当前目录
                    
            ElseIf Left$(CmdStr, 8) = "DEC2HEX " Then        '//*DEC2HEX*//
                    ParStr = Right$(CmdStr, Len(CmdStr) - 8)
                    Print "十进制数:" & ParStr
                    Print "等于十六进制数:" & Hex$(ParStr)        '转为十六进制
                    
            ElseIf Left$(CmdStr, 4) = "DEL " Then            '//* DEL   * //
                    FileN = Right$(CmdStr, Len(CmdStr) - 4)
                    If Dir$(FileN) = "" Then
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    Kill FileN                                    '删除文件
                    Print "文件"; FileN; "已删除."
                    
            ElseIf Left$(CmdStr, 8) = "FILELEN " Then        '//* FILELEN* //
                    FileN = Right$(CmdStr, Len(CmdStr) - 8)
                    If Dir$(FileN) = "" Then
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    FileL = FileLen(FileN)                        '计算文件长度
                    Print "文件"; FileN; "长度:"; FileL; "字节"
                    
            ElseIf Left$(CmdStr, 13) = "FILEDATETIME " Then  '//*FILEDATETIME*//
                    FileN = Right$(CmdStr, Len(CmdStr) - 13)
                    If Dir$(FileN) = "" Then
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    Print "文件创建时间:"; FileDateTime(FileN)    '显示文件创建时间
                    
            ElseIf Left$(CmdStr, 8) = "GETATTR " Then        '//* GETATTR*//
                    FileN = Right$(CmdStr, Len(CmdStr) - 8)
                    If Dir$(FileN) = "" Then
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    FileAttr = GetAttr(FileN)                     '取得文件属性
                    Print "文件属性:"; FileAttr
                    Print "属性说明:"; GetAttrInfo(FileAttr)
                    
            ElseIf Left$(CmdStr, 9) = "GETASCII " Then       '// * GETASCII*//
                    ParStr = Right$(CmdStr, Len(CmdStr) - 9)
                    Print "字符"; ParStr; "所对应的ASCII码为:"; Asc(ParStr)
                    Print "字符"; LCase$(ParStr); "所对应的ASCII码为:"; Asc(LCase$(ParStr))
                    
            ElseIf Left$(CmdStr, 7) = "GETCHR " Then         '// * GETCHR *//
                    ParStr = Right$(CmdStr, Len(CmdStr) - 7)
                    Print "ASCII码"; ParStr; "所对应的字符为:"; Chr$(Val(ParStr))
                    
            ElseIf Left$(CmdStr, 8) = "ISPRIME " Then        '// * ISPRIME * // -- 判别一个数是否为质数 --
                    ParStr = Right$(CmdStr, Len(CmdStr) - 8)
                    m = Val(ParStr)
                    If m <> 0 And m <> 1 Then
                        n = Int(Sqr(m))
                        i = 2
                        Do While i <= n
                            j = m Mod i
                            If j = 0 Then
                                Exit Do
                        Else
                                i = i + 1
                            End If
                        Loop
                        If i >= n + 1 Then
                            Print m & "是一个质数!"
                    Else
                            Print m & "不是一个质数!"
                        End If
                Else                                          '0,1不用计算直接确定为非质数
                        Print m & "不是一个质数!"
                    End If
                    
            ElseIf Left$(CmdStr, 5) = "KILL " Then           '//* KILL *//
                    FileN = Right$(CmdStr, Len(CmdStr) - 5)
                    If Dir$(FileN) = "" Then
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    Kill FileN                                    '删除文件
                    Print "文件"; FileN; "已删除."
                    
            ElseIf Left$(CmdStr, 8) = "LOADBMP " Then        '//* LOADBMP*//
                    FileN = Right$(CmdStr, Len(CmdStr) - 8)
                    If Dir$(FileN) = "" Then
                        Print "文件未找到."
                        GoTo DosPrompt
                    End If
                    Me.ScaleMode = 3                              '将屏幕工作模式重设
                    Image1.Top = CurrentY
                    Image1.Left = 0
                    Image1.Picture = LoadPicture(FileN)           '显示图片
                    CurrentY = CurrentY + Image1.Height
                    Me.ScaleMode = 4                              '还原工作模式
                    
            ElseIf Left$(CmdStr, 10) = "LISTPRIME " Then     '//* LISTPRIME *// -- 列出指定范围内的质数列表.
                    n = Val(Right$(CmdStr, Len(CmdStr) - 10))
                    If n < 2 Then
                        Print "输入的数值无效!有效范围在(2-32767)之间"
                        GoTo DosPrompt
                    End If
                    Print n; "以内的质数列表:"
                    Print String$(25, "-")
                    m = 2
                    Do
                        p = Int(Sqr(m))
                        i = 2
                        Do
                            If m Mod i = 0 Then
                                Exit Do
                        Else
                                i = i + 1
                            End If
                        Loop Until i > p
                        If i >= p + 1 Then Print m;
                        m = m + 1
                        j = j + 1
                        If j > 100 Then j = 0: Print                 '数值每增加100就换行再打印
                    Loop Until m > n
                    Print
                    Print String$(10, "-"); " End "; String$(10, "-")
                    
            ElseIf Left$(CmdStr, 12) = "LISTPERFECT " Then     '//* LISTPERFECT *//
                    m = Val(Right$(CmdStr, Len(CmdStr) - 12))
                    Print m; "以内的完数列表:"
                    Print String$(25, "-")
                    For n = 6 To m
                        i = 1
                        For j = 2 To Sqr(n)
                            If n / j = Int(n / j) Then
                                i = i + j + n / j
                            End If
                        Next j
                        If i = n Then Print n,
                    Next n
                    Print
                    Print String$(10, "-"); " End "; String$(10, "-")
                    
            ElseIf Left$(CmdStr, 11) = "LISTFLOWER " Then    '//* LISTFLOWER *//
                    n = Val(Right$(CmdStr, Len(CmdStr) - 11))
                    Print n; "以内的水仙花数列表:"
                    Print String$(25, "-")
                    For i = 100 To n Step 1
                        m = 0
                        For j = 1 To Len(Trim$(Str$(i)))
                            m = m + Val(Mid$(Trim$(Str$(i)), j, 1)) ^ 3
                        Next j
                        If m = i Then                               '如果是水仙花数就打印
                            Print i,
                        End If
                    Next i
                    Print
                    Print String$(10, "-"); " End "; String$(10, "-")
                    
            ElseIf Left$(CmdStr, 3) = "MD " Then             '//* MD    * //
                    DirN = Right$(CmdStr, Len(CmdStr) - 3)
                    If Dir$(DirN, vbDirectory) = "" Then
                        MkDir DirN                                 '创建目录
                        Print "目录"; DirN; "已创建"
                Else
                        Print "目录"; DirN; "已存在"
                    End If
                    
            ElseIf Left$(CmdStr, 6) = "MKDIR " Then          '//* MkDir    * //
                    DirN = Right$(CmdStr, Len(CmdStr) - 6)
                    If Dir$(DirN, vbDirectory) = "" Then
                        MkDir DirN                                 '创建目录
                        Print "目录"; DirN; "已创建"
                Else
                        Print "目录"; DirN; "已存在"
                    End If
                    
            ElseIf Left$(CmdStr, 5) = "MOVE " Then           '//* MOVE * //
                    FileN = Right$(CmdStr, Len(CmdStr) - 5)
                    If Dir$(FileN) <> "" Then
                        j = Len(FileN)                             '取得全路径文件名长度
                        For i = j To 1 Step -1                     '从后往前读取每个字符
                            tmpStr = Mid$(FileN, i, 1)
                            If tmpStr = "\" Then                     '找到第一个"\",后面的就是文件名
                                FileNew = Right$(FileN, j - i)
                                Exit For                               '已找到文件名,则退出循环
                            End If
                        Next i
                        DoEvents
                        Print "正在将文件"; FileN; "复制到"; App.Path; "\"; FileNew
                        FileCopy FileN, App.Path & "\" & FileNew
                        Print "正在删除源文件"; FileN; " ..."
                        Kill FileN
                        DoEvents                                   '等待复制完成并提示

⌨️ 快捷键说明

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