问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

VB 问题~请教!!

发布网友 发布时间:2022-05-01 21:19

我来回答

4个回答

热心网友 时间:2022-06-23 16:01

'添加文本控件text1及按钮控件command1,然后输入下面代码即可。

Option Explicit
' 表达式计算
Public Function js(GS As String) As String
Dim i, n As Integer
Dim TempGs, Temp As String
Dim Vl() As String '操作数
Dim Vls As Integer '操作数的数目
Dim Si As Integer '上一操作符的位置
Dim Ads, Sus, Mus, Bys, Lks, Rks As Integer '操作符的数目
Dim Adp(), Mup(), Byp(), Lkp(), Rkp() As Integer '操作符的位置
Dim Adn(), Mun(), Byn() As Integer '操作符的排列次序
Dim Sig() As Integer '每一个操作符的位置

On Error GoTo Err
Do While True
ReDim Adp(Len(GS)), Mup(Len(GS)), Byp(Len(GS)) _
, Lkp(Len(GS)), Rkp(Len(GS)) As Integer
ReDim Adn(Len(GS)), Mun(Len(GS)), Byn(Len(GS)) _
, Lkn(Len(GS)), Rkn(Len(GS)), Sig(Len(GS)) As Integer

ReDim Vl(Len(GS))

If Len(GS) = 0 Then GoTo Err
If Mid(GS, Len(GS), 1) <> "#" Then

TempGs = GS
For i = 1 To Len(GS) '将减化加

If Mid(GS, i, 1) = "-" And i <> 1 Then
If Mid(GS, i - 1, 1) <> "+" And Mid(GS, i - 1, 1) <> "-" _
And Mid(GS, i - 1, 1) <> "*" And Mid(GS, i - 1, 1) <> "/" Then
TempGs = Mid(TempGs, 1, i - 1 + n) + "+" + Mid(GS, i)
n = n + 1
End If

End If
Next i
GS = TempGs

n = 0
For i = 1 To Len(GS) '处理负负得正
If Mid(GS, i, 1) = "-" Then
If Mid(GS, i + 1, 1) = "-" Then
TempGs = Mid(TempGs, 1, i - 1 - n) + Mid(GS, i + 2)
n = n + 2
End If
End If
Next i
GS = TempGs
GS = GS + "#"
End If

Vls = 1
Ads = 0: Sus = 0: Mus = 0: Bys = 0: Lks = 0: Rks = 0

For i = 1 To Len(GS)

Select Case Mid(GS, i, 1)
Case "+"
Ads = Ads + 1
Adp(Ads) = i
Adn(Ads) = Vls
Case "*"
Mus = Mus + 1
Mup(Mus) = i
Mun(Mus) = Vls
Case "/"
Bys = Bys + 1
Byp(Bys) = i
Byn(Bys) = Vls
Case "("
Lks = Lks + 1
Lkp(Lks) = i

Case ")"
Rks = Rks + 1
Rkp(Rks) = i

End Select

If Mid(GS, i, 1) = "+" Or Mid(GS, i, 1) = "*" Or _
Mid(GS, i, 1) = "/" Or Mid(GS, i, 1) = "#" Then

If Si + 1 = i And Mid(GS, i + 1, 1) <> "#" _
Then '操作符非法连续或以操作符开头
GoTo Err
Else
Si = i
End If

If Not IsNumeric(Vl(Vls)) And Mid(GS, i + 1, 1) <> "#" _
Then '操作数不是数字
GoTo Err
End If
Sig(Vls) = i
Vls = Vls + 1

Else
If Mid(GS, i, 1) <> "(" And Mid(GS, i, 1) <> ")" Then
Vl(Vls) = Vl(Vls) + Mid(GS, i, 1) '制作操作数
Else
If i <> 1 Then
If ((Mid(GS, i - 1, 1) = "(" And Mid(GS, i, 1) = ")") Or _
(Mid(GS, i - 1, 1) = ")" And Mid(GS, i, 1) = "(")) _
Then '判定括号前后符号的合法性
GoTo Err
End If
End If
End If
End If

Next i

If Lks <> Rks Then
GoTo Err '左右括号数是否匹配
End If

For i = 1 To Lks
If Lkp(i) > Rkp(i) Then GoTo Err '左右括号出现顺序错误
Next i

If Lks <> 0 Then '括号处理
Do While True
For i = Lks To 1 Step -1
For n = Rks To 1 Step -1
Temp = js(Mid(GS, Lkp(i) + 1, Rkp(n) - Lkp(i) - 1))
If Temp <> "公式有错误" Then
GS = Mid(GS, 1, Lkp(i) - 1) + Temp + Mid(GS, Rkp(n) + 1)
Exit Do
End If
Next n
Next i
If Temp = "公式有错误" Then GoTo Err
'括号中有错误退出
Loop
Else
If Mus <> 0 Then '乘法处理
GS = Mid(GS, 1, Sig(Mun(1) - 1)) + Trim(Str(Val(Vl(Mun(1))) _
* Val(Vl(Mun(1) + 1)))) + Mid(GS, Val(Mup(1)) + Len(Vl(Mun(1) _
+ 1)) + 1)
Else
If Bys <> 0 Then '除法处理
GS = Mid(GS, 1, Sig(Byn(1) - 1)) + Trim(Str(Val(Vl(Byn(1))) _
/ Val(Vl(Byn(1) + 1)))) + Mid(GS, Val(Byp(1)) + Len(Vl(Byn(1) _
+ 1)) + 1)
Else
If Ads <> 0 Then '加法处理
GS = Trim(Str(Val(Vl(1)) + Val(Vl(2)))) + Mid(GS, Val(Adp(1)) _
+ Len(Vl(2)) + 1)
Else
js = Mid(GS, 1, Len(GS) - 1)
Exit Function
End If
End If
End If
End If
Loop

Err:
js = "公式有错误"

End Function
Private Sub Command1_Click()
If Text1.Text = "2" Then
Call TestFile(App.Path & "\1.cfg")
End If
End Sub

Private Sub TestFile(FileName As String)
If Dir(FileName) = "" Then
MsgBox "文件不存在!"
Exit Sub
End If
Dim i As Integer, j As Integer, k As Integer, S As String, BakFile As String
BakFile = App.Path & "\~tmp.dat"
If Dir(BakFile) <> "" Then Kill BakFile
i = FreeFile
Open FileName For Input As #i
j = FreeFile
Open BakFile For Output As #j
Do While Not EOF(i)
Line Input #i, S
k = InStr(S, "=")
If k > 0 Then
Print #j, Left(S, k) & js(Left(S, k - 1))
End If
Loop
Close #i, #j
Kill FileName
Name BakFile As FileName
MsgBox "文件检查成功!"
End Sub

热心网友 时间:2022-06-23 16:01

不太理解楼主的意图

文件操作方面的一些例子 供参考
Open "TESTFILE" For Output As #1 ' 打开输出文件。
Print #1, "This is a test" ' 将文本数据写入文件。
Print #1, ' 将空白行写入文件。
Print #1, "Zone 1"; Tab ; "Zone 2" ' 数据写入两个区(print zones)。
Print #1, "Hello" ; " " ; "World" ' 以空格隔开两个字符串。
Print #1, Spc(5) ; "5 leading spaces " ' 在字符串之前写入五个空格。

Print #1, Tab(10) ; "Hello" ' 将数据写在第十列。

热心网友 时间:2022-06-23 16:02

不记得了。学过。还给老师了。。给你我同学的QQ 直接问。。。15275970 高手。VB老师。也是我的同学。

热心网友 时间:2022-06-23 16:02

http://www.vbaspnew.com/
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
饥荒巨鸟图腾有什么用 饥荒巨鸟图腾怎么激活 恐惧饥荒健康怎么回复 健康值系统详解 想在京东买32g内存卡,发个商品号给我吧 民族文化浅谈普米族的宗教信仰 iphone4s进入恢复模式后,过几十秒就自动关机 hdr10是什么意思(hdr10是什么) 郑州禧年化妆摄影学校的专业设置 乔迁择吉2022年属鸡4月最佳入新居日子? 变电站中110kv配电变压器最小多大容量? vb作业求助 相对分子质量为M的气态化合物VL(已换算成标准状况)溶于m g水中,得到溶液的溶质质量分数为ω%,物质的 在调心滚子轴承型号中VB是表示什么意思 急~~ VB串口通信问题 VB题目:随机产生1-33之间的6个随机数(保证6个数字不重复)按照从大到小的顺序排列 VB奇数求和 [VB]表达式识别 英语语言学中VL VD什么意思 深沟球轴承后缀NB是什么意思? 求主攻强攻强受文,受对攻占有欲极强,攻有点渣,受追攻的文 在职免联考双证硕士报读流程 去新加坡需要签证吗?求告知 免联考国家认可的在职研究生硕士班可信么 儿童跟父母一起申请加拿大网签(有美签)为什么要 我是福建人,福建是广州区域的,那要办签证还要飞去广州办签证吗? 先天性心脏病房间隔缺损,已手术治愈,能通过新西兰签证体检吗 受苏是什么意思? 澳大利亚签证可以在网上申请吗 想学个MBA,听说国际MBA免联考? 如何在新西兰申请中国护照换发,补发 Vl手册中U盘怎么介绍? 立春雨水惊蛰虫不眠春风劲清明采茶谷雨泉这首诗是什么 男孩怎么穿连裤袜 怎么搭配 出去不会被人发现?? 提供惊蛰诗歌 男生可以女人的超薄连裤丝袜,搭配短裤穿出门吗??? 男生可以穿这种肤色袜子出门吗? 穿丝袜可以配板鞋么,? 后宫视频聊天网怎么打不开 求后宫甄嬛传视频全集下载 哪里能找到后宫甄嬛传的视频 腾讯视频有哪些后宫,妹控的动漫 后宫甄嬛传视频怎么下载到手机上? 谁用百度云给我发几个好看的后宫动漫的视频啊(只要是后宫其他不限) 后宫甄嬛传高清视频下载地址~最好是种子直接下载。。。 后宫缓存的视频在哪? 后宫甄嬛传的视频谁有阿? 后宫甄嬛传大结局视频在哪里? 后宫如懿传全集优酷视频 求后宫甄嬛传所有 视频,谢谢。。。q:759468022 怎么辨别主板的牌子? 给你一块主板,怎么看它是什么牌子呢?还有怎么区别什么型号呢?