[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[技术讨论] 我用vbs做了个华氏度和摄氏度转换器

本帖最后由 LTSC1809 于 2023-6-3 17:03 编辑

没啥好说的,上代码,如果有好的建议请跟帖,另外如果有人能帮忙写成hta那就太好了(注意要求,我也会写hta,但是我要求选择从华氏度到摄氏度还是摄氏度到华氏度以及帮助做成三个按钮,然后输入框和运行结果的矿不要弹出,直接在页面上创建文本框和文字,因为我不会js,所以判断按钮按下然后运行指定的vbs脚本这个我不会,js一点也看不懂,但是hta有些地方只能js,很无奈):
  1. Function C_F(input)
  2. Dim output
  3. input=CDbl(input)
  4. output=32+input*1.8
  5. C_F=output
  6. End Function
  7. Function F_C(input)
  8. Dim output
  9. input=CDbl(input)
  10. output=(input-32)/1.8
  11. F_C=output
  12. End Function
  13. Dim inbox
  14. inbox=InputBox("输入CF来使用摄氏度到华氏度转换"&vbcrlf&"输入FC来使用华氏度到摄氏度转换"&vbcrlf&"输入“help”来查看帮助:","华氏度和摄氏度转换器")
  15. If inbox="CF" Then
  16. Dim incf,outcf
  17. incf=InputBox("输入摄氏度:","摄氏度到华氏度")
  18. outcf=C_F(incf)
  19. MsgBox incf&"℃="&outcf&"℉",vbokonly,"输出"
  20. ElseIf inbox="FC" Then
  21. Dim incf2,outcf2
  22. incf2=InputBox("输入华氏度:","华氏度到摄氏度")
  23. outcf2=F_C(incf2)
  24. MsgBox incf2&"℉="&outcf2&"℃"
  25. ElseIf inbox="help" Then
  26. MsgBox "华氏度和摄氏度换算公式:"&vbcrlf&"华氏度=32+摄氏度×1.8"&vbcrlf&"摄氏度=(华氏度-32)÷1.8"&vbclrf&"如果你觉得工具好用的话,去b站给LTSC1809点个赞吧",vbokonly,"help"
  27. Else
  28. MsgBox "无效输入",vbokonly,"Error"
  29. End If
复制代码

回复 24# LTSC1809


    cdbl在这里只有心里作用!错误的字符串cdbl也不会让它变成数字
你好

TOP

回复 21# jyswjjgdwtdtj
我一开始入门学的是bat,那个根本不用在意什么类型事不事字符串,类型是否匹配等等,还有很多像%windir%,%random%之类方便的环境变量,是真简单啊,后来心血来潮学了vbs,才慢慢了解数据类型这类的东西
一个六年级小学生,请多指教

TOP

回复 22# jyswjjgdwtdtj
但是我之前就遇到过inputbox返回的是字符串类型,用来和数字比较,结果最后不管怎样都比较不同,就是因为一个是字符串一个是数字常量...当时百思不得其解,来了论坛求助才有人告诉我,从那以后为了不遇到奇奇怪怪的bug,我习惯给inputbox返回值当数字用的时候加上一个CDbl()函数
一个六年级小学生,请多指教

TOP

还有cdbl是无用的 vbs会自己隐式的调用
你好

TOP

回复 20# LTSC1809


    vbs是真简单
你好

TOP

回复 19# jyswjjgdwtdtj
确实,只不过我懒不想学js...如果我一开始就学的js,现在有人叫我看看vbs,我一定也会觉得vbs太难了懒得学...
一个六年级小学生,请多指教

TOP

回复 18# LTSC1809


    嗯……某种程度上来讲用end*确实是优点
但是像什么自增啊灵活的对象啊函数啊js还是好很多的
你好

TOP

回复 15# jyswjjgdwtdtj
确实如此,不过js的代码符号明显比vbs更多,并且和c类语言很相似,符号多了让人更有一种看天书的感觉...vbs符号非常少,连大括号都没有,直接使用end语句
一个六年级小学生,请多指教

TOP

回复 14# jyswjjgdwtdtj
论坛规定说回答如果采纳要给回答者加技术分
一个六年级小学生,请多指教

TOP

回复 10# LTSC1809


    谈不上好的思路吧 理应如此
你好

TOP

本帖最后由 jyswjjgdwtdtj 于 2023-6-3 21:16 编辑

对了 hta里最好不要用vbs 硬要用(比如regexp很香 typename很香 foreach很香) 事件最好这么些
  1. sub a
  2. msgbox b
  3. end sub
  4. window.onload=getref("a")
复制代码
主要吧 靠谱 但是绝对没有js方便
js不难 可以学学
难的是那些面向对象的奇诡方法 比如集大成者jquery
你好

TOP

回复 13# LTSC1809


    嗯? 是你写错了吧

还有这分加的我受宠若惊
照你这样加法 技术分得通货膨胀
你好

TOP

回复 6# jyswjjgdwtdtj

你这个有问题啊,我解决1.8错写成18以后发现输入639514出来的是35510.555555555555,正确答案是355282.777777778
一个六年级小学生,请多指教

TOP

回复 11# LTSC1809 发现问题了,hta版的*1.8被错误的写成了*18
一个六年级小学生,请多指教

TOP

返回列表