📄 vb_dos.frm
字号:
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 + -