当前位置: 首页 > news >正文

vb.net小demo(计算器、文件处理等/C#也可看)

Demo1:使用窗体控件实现一个简易版计算器

在这里插入图片描述

Public Class Form1Private Sub Button_1_Click(sender As Object, e As EventArgs) Handles Button_1.ClickCalSubBox.Text += Button_1.TextEnd SubPrivate Sub Button_2_Click(sender As Object, e As EventArgs) Handles Button_2.ClickCalSubBox.Text += Button_2.TextEnd SubPrivate Sub Button_3_Click(sender As Object, e As EventArgs) Handles Button_3.ClickCalSubBox.Text += Button_3.TextEnd SubPrivate Sub Button_4_Click(sender As Object, e As EventArgs) Handles Button_4.ClickCalSubBox.Text += Button_4.TextEnd SubPrivate Sub Button_5_Click(sender As Object, e As EventArgs) Handles Button_5.ClickCalSubBox.Text += Button_5.TextEnd SubPrivate Sub Button_6_Click(sender As Object, e As EventArgs) Handles Button_6.ClickCalSubBox.Text += Button_6.TextEnd SubPrivate Sub Button_7_Click(sender As Object, e As EventArgs) Handles Button_7.ClickCalSubBox.Text += Button_7.TextEnd SubPrivate Sub Button_8_Click(sender As Object, e As EventArgs) Handles Button_8.ClickCalSubBox.Text += Button_8.TextEnd SubPrivate Sub Button_9_Click(sender As Object, e As EventArgs) Handles Button_9.ClickCalSubBox.Text += Button_9.TextEnd SubPrivate Sub Button_0_Click(sender As Object, e As EventArgs) Handles Button_0.ClickCalSubBox.Text += Button_0.TextEnd SubPrivate Sub Button_Add_Click(sender As Object, e As EventArgs) Handles Button_Add.ClickCalSubBox.Text += Button_Add.TextEnd SubPrivate Sub Button_Sub_Click(sender As Object, e As EventArgs) Handles Button_Sub.ClickCalSubBox.Text += Button_Sub.TextEnd SubPrivate Sub Button_Mul_Click(sender As Object, e As EventArgs) Handles Button_Mul.ClickCalSubBox.Text += Button_Mul.TextEnd SubPrivate Sub Button_Exc_Click(sender As Object, e As EventArgs) Handles Button_Exc.ClickCalSubBox.Text += Button_Exc.TextEnd SubPrivate Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.ClickCalSubBox.Text += "."End SubPrivate Sub Button_CE_Click(sender As Object, e As EventArgs) Handles Button_CE.ClickResultBox.Text = vbNullStringCalSubBox.Text = ""N_S = ""End SubPrivate Sub Button_C_Click(sender As Object, e As EventArgs) Handles Button_C.ClickResultBox.Text = vbNullStringCalSubBox.Text = ""N_S = ""End SubPublic Result As DoublePublic ErrMsg As String = "正无穷大"Private Sub Button_Equal_Click(sender As Object, e As EventArgs) Handles Button_Equal.ClickTryDim result = New DataTable().Compute(CalSubBox.Text, Nothing) '将一个表达式进行运算ResultBox.Text = result '将结果显示出来If (ErrMsg = ResultBox.Text) ThenResultBox.Text = "除数不能为0"End IfCatch ex As ExceptionMsgBox("无法计算:" & ex.Message)End TryDim Split_Str As String() = CalSubBox.Text.Split({"+"c, "-"c, "/"c, "*"c}) 'Split_Str是分割后的单个字符串DelZero(Split_Str)Console.WriteLine("新字符串:" & N_S)CalSubBox.Text = DelLastChar(N_S) '去掉最后一个字符,展示到文本框中End SubFunction DelLastChar(s As String)Return s.Substring(0, s.Length - 1)End FunctionFunction DelZero(ByVal StrArr As String())Dim Op_StrArr As String = GetOperateStr(CalSubBox.Text) '[+,-] 先获取整个字符串列表Dim Op_Str As StringFor i = 0 To StrArr.Length - 1  ' strArr实质上是分割后的单个字符串Console.WriteLine("第" & i + 1 & "次" & vbNewLine)Dim DelZero_S As String = StrArr(i).TrimStart({"0"c}) 'DelZero_S是抹零后的单个字符串、Console.WriteLine("抹零后:" & DelZero_S)If Not i = Op_StrArr.Length Then '最后一次不需要获取Op_Str = Op_StrArr(i) '获取当前的单个操作数,从字符串数组中获取End IfConsole.WriteLine("操作数:" + Op_Str)N_S += DelZero_S + Op_Str '将抹零的字符串 与 当前操作数拼接 '最后一次的单个操作数不变,用DelLastChar去掉即可Console.WriteLine("N_S:" & N_S)Console.WriteLine(" DelZero_S:" & DelZero_S)NextReturn N_SEnd FunctionFunction GetOperateStr(ByVal StrArr As String) '获取操作数,返回一个存放操作数的字符串数组Dim NewStrArr As String = ""For i = 0 To StrArr.Length - 1 '获取下标,从Index开始寻找第一个操作数,而不是重新开始If StrArr(i) = "+" Or StrArr(i) = "-" Or StrArr(i) = "*" Or StrArr(i) = "/" ThenNewStrArr += StrArr(i)End IfNextReturn NewStrArr '字符串数组[+,-,]End FunctionPrivate Sub Button_Backspace_Click(sender As Object, e As EventArgs) Handles Button_Backspace.ClickTryCalSubBox.Text = CalSubBox.Text.Substring(0, CalSubBox.Text.Length - 1) '回退一个字符:将字符串截取0,end-1赋值回去即可Catch ex As ExceptionMsgBox("发生错误:" & ex.Message)CalSubBox.Text = ""End TryEnd SubEnd Class

Demo2:对文件进行处理

要求:1.去掉当前文件的第一行

2.从第二行开始算,保留奇数行,去掉偶数行

3.将每一行的分隔符改为“/”

4.将每一行的2位和3位数字调换位置

5.将每一个数字保留2位小数


Imports System.IOModule Module1Sub Main()Dim fr As New StreamReader("E:\T4-2.txt") '这里存放要处理的文件路径Dim fw As New StreamWriter("C:\Users\Public\Desktop\T4-2-处理.txt") '写到桌面的fw流的路径Dim data As String = ""Dim data1 As String = ""Dim new_data As String = ""fr.ReadLine() '跳过第一行中文字体,相当于第0行While data <> " " 'data读奇数行,data1读偶数行,遇到空格行就退出data = fr.ReadLine() '读取第一//...行数据,并把读的内容赋值给当前data(data每次循环都会被重新赋值)If data = Nothing Then Exit While '当data读到空格行就退出循环,下同new_data = replace_splitChar(data) '将读取的data替换字符并返回给新data,此时的新data可以被写出Console.WriteLine("newData:" + new_data)fw.WriteLine(new_data, True) '写出 (重写)data1 = fr.ReadLine() '跳过第二//...,If data1 = Nothing Then Exit While 'End Whilefr.Close()fw.Close()Console.WriteLine("已输出到桌面、按下任意键退出.....")Console.ReadKey()End SubFunction replace_splitChar(ByVal charStr As String)Dim new_str As String = "" '用一个新的Str来拼接/Dim new_str1 As String = ""Dim strArr As String() = charStr.Split(",") '分隔为字符串数组["110","23","12"]For Each s In strArr'把每个字符串保留两位小数Dim f_s = Double.Parse(s).ToString("0.00") 'f_s是保留两位小数的当前字符串new_str += f_s & "/" '拿到每一个字符串并拼接/ 赋值给新StrNext'交换的代码Dim strArr1 As String() = new_str.Split("/") '对newstr进行交换操作For i = 0 To new_str.Length - 1 'strArr就是字符串数组new_str1 = strArr1(0) + "/" + exchange(strArr(1), strArr(2)) + "/" + strArr1(3)NextReturn new_str1End FunctionFunction exchange(ByVal StrA As String, ByVal StrB As String) As String '将两个字符串进行交换位置的函数StrA = Double.Parse(StrA).ToString("0.00") '先转换再交换StrB = Double.Parse(StrB).ToString("0.00")Return StrB + "/" + StrAEnd FunctionEnd Module

Demo3:OPenDialog和SaveDialog对话框案例(包括ToolStripMenu)

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.ClickOpenFileDialog1.InitialDirectory = "D:\"OpenFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"OpenFileDialog1.Title = "打开文件"' .RestoreDirectory = True '对话框关闭之前还原至当前目录If OpenFileDialog1.ShowDialog() = DialogResult.OK ThenfileName = OpenFileDialog1.FileName 'OpenFileDialog1已经拿到文件名了fr = New StreamReader(fileName) '创建fileReader流通过文件名来读取文件RichTextBox1.Text = fr.ReadToEnd()  'fr已经获取到文件的所有信息,使用ReadToEnd()获取其内容fr.Close()End IfEnd SubPrivate Sub 打开文件ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 打开文件ToolStripMenuItem.ClickOpenFileDialog1.InitialDirectory = "D:\"OpenFileDialog1.Filter = "纯文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"OpenFileDialog1.Title = "打开文件"' .RestoreDirectory = True '对话框关闭之前还原至当前目录If OpenFileDialog1.ShowDialog() = DialogResult.OK ThenfileName = OpenFileDialog1.FileName 'OpenFileDialog1已经拿到文件名了fr = New StreamReader(fileName) '创建fileReader流通过文件名来读取文件RichTextBox1.Text = fr.ReadToEnd()  'fr已经获取到文件的所有信息,使用ReadToEnd()获取其内容fr.Close()End IfEnd Sub

相关文章:

vb.net小demo(计算器、文件处理等/C#也可看)

Demo1&#xff1a;使用窗体控件实现一个简易版计算器 Public Class Form1Private Sub Button_1_Click(sender As Object, e As EventArgs) Handles Button_1.ClickCalSubBox.Text Button_1.TextEnd SubPrivate Sub Button_2_Click(sender As Object, e As EventArgs) Handles …...

【vue3|第8期】深入理解Vue 3 computed计算属性

日期&#xff1a;2024年6月10日 作者&#xff1a;Commas 签名&#xff1a;(ง •_•)ง 积跬步以致千里,积小流以成江海…… 注释&#xff1a;如果您觉得有所帮助&#xff0c;帮忙点个赞&#xff0c;也可以关注我&#xff0c;我们一起成长&#xff1b;如果有不对的地方&#xf…...

《精通ChatGPT:从入门到大师的Prompt指南》附录C:专业术语表

附录C&#xff1a;专业术语表 本附录旨在为读者提供一本全面的术语表&#xff0c;帮助理解《精通ChatGPT&#xff1a;从入门到大师的Prompt指南》中涉及的各种专业术语。无论是初学者还是高级用户&#xff0c;这些术语的定义和解释将为您在使用ChatGPT时提供重要参考。 A AI&…...

YOLOv8可视化界面PYQT5

yolov8&#xff0c;可视化界面pyqt。支持图片检测&#xff0c;视频检测&#xff0c;摄像头检测等&#xff0c;实时显示检测画面。支持自定义数据集&#xff0c;计数&#xff0c;fps展示……,即插即用&#xff0c;无需更改太多代码...

远程代码执行和远程命令执行是一个东西吗

远程代码执行&#xff08;Remote Code Execution&#xff0c;简称RCE&#xff09;和远程命令执行在概念上有所区别&#xff0c;但两者都涉及到攻击者通过远程方式在目标系统上执行代码或命令。以下是两者的详细比较&#xff1a; 定义&#xff1a; 远程代码执行&#xff08;RCE…...

C++ 20新特性之线程与jthread

&#x1f4a1; 如果想阅读最新的文章&#xff0c;或者有技术问题需要交流和沟通&#xff0c;可搜索并关注微信公众号“希望睿智”。 为什么要引入jthread 在C 11中&#xff0c;已经引入了std::thread。std::thread为C标准库带来了一流的线程支持&#xff0c;极大地促进了多线程…...

赶紧收藏!2024 年最常见 20道并发编程面试题(七)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道并发编程面试题&#xff08;六&#xff09;-CSDN博客 十三、什么是线程局部存储&#xff08;Thread-Local Storage&#xff09;&#xff1f; 线程局部存储&#xff08;Thread-Local Storage&#xff0c;简称TLS…...

HAL库开发--第一盏灯

知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 需求 开发流程 项目创建 芯片配置 功能配置 时钟配置 项目配置 编写代码 编译测试 烧录失败解决 ​编辑 总结 前言 在嵌入式系统开发中&#xff0c;掌握HAL库开发流程、STMCubeMX配置过程以及…...

Linux C语言:变量的作用域和生命周期(auto、register、static和extern)

一、变量存储类型-auto 1、auto变量的说明 变量在程序中使用时,必须预先说明它们的存储类型和数据类型。 变量说明的一般形式是&#xff1a; <存储类型> <数据类型 > <变量名> &#xff1b; <存储类型>是关键词auto、register、static和extern<…...

AI Stable diffusion 报错:稳定扩散模型加载失败,退出

可能是内存不够&#xff0c;看看你最近是加了新的大的模型&#xff0c;可以把你的stable-diffusion-webui\models\Stable-diffusion目录下的某个ckpt删除掉&#xff0c;可能ckpt太大&#xff0c;无法加载成功&#xff1b; Stable diffusion model failed to load, exiting 如图…...

[Python学习篇] Python循环语句

while 循环 语法&#xff1a; while 条件: 条件成立后会重复执行的代码 ...... 示例1&#xff1a;死循环 # 这是一个死循环示例 while True:print("我正在重复执行")示例2&#xff1a;循环指定次数 i 1 while i < 5:print(f"执行次数 {i}")…...

MongoDB 正则表达式

MongoDB 正则表达式 MongoDB 是一个流行的 NoSQL 数据库&#xff0c;它提供了强大的查询功能&#xff0c;包括对正则表达式的支持。正则表达式是一种强大的文本搜索工具&#xff0c;它允许用户根据特定的模式匹配和搜索字符串。在 MongoDB 中&#xff0c;正则表达式可以用于查…...

Django配置连接池:使用django-db-connection-pool配置连接池

一、该三方库文档使用 github地址&#xff1a; https://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.mdhttps://github.com/altairbow/django-db-connection-pool/blob/1.2.5/README_CN.md1、选择指定版本&#xff0c;查看指定版本的文档和配置&am…...

SpringBoot整合钉钉实现消息推送

前言 钉钉作为一款企业级通讯工具&#xff0c;具有广泛的应用场景&#xff0c;包括但不限于团队协作、任务提醒、工作汇报等。 通过Spring Boot应用程序整合钉钉实现消息推送&#xff0c;我们可以实现以下功能&#xff1a; 实时向指定用户或群组发送消息通知。自定义消息内容…...

【机器学习】集成学习方法:Bagging与Boosting的应用与优势

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言一、集成学习的定义二、Bagging方法1. 随机森林&#xff08;Random Forest&#xff09;2. 其他Bagging方法 二、Boosting方法1. 梯度提升树&#xff08;Gradient Boosting Machine, GBM&#xff09;解释GBM的基本原理和…...

工业 web4.0 的 UI 卓越非凡

工业 web4.0 的 UI 卓越非凡...

C语言 | Leetcode C语言题解之第145题二叉树的后序遍历

题目&#xff1a; 题解&#xff1a; void addPath(int *vec, int *vecSize, struct TreeNode *node) {int count 0;while (node ! NULL) {count;vec[(*vecSize)] node->val;node node->right;}for (int i (*vecSize) - count, j (*vecSize) - 1; i < j; i, --j)…...

如何在 Vue 3 中使用 vue3-print-nb 实现灵活的前端打印

你好&#xff0c;我是小白Coding日志&#xff0c;一个热爱技术的程序员。在这里&#xff0c;我分享自己在编程和技术世界中的学习心得和体会。希望我的文章能够给你带来一些灵感和帮助。欢迎来到我的博客&#xff0c;一起在技术的世界里探索前行吧&#xff01; 前言 在前端开…...

Go Module详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

基于51单片机的智能水表

一.硬件方案 本设计主要以51单片机作为主控处理器的智能水表&#xff0c;该水表能够记录总的用水量和单次用水量&#xff0c;当用水量超出设定值时系统发出声光报警提醒&#xff0c;水量报警值能够通过按键进行自行设置&#xff0c;并且存储于AT24C02中&#xff0c;并且可以测…...

SQLServer 借助Navcate做定时备份的脚本

首先创建SQLServer链接&#xff0c;然后在Query标签种创建一个查询 查询内容如下 use ChengYuMES declare ls_time varchar(1000) declare ls_dbname varchar(1000) set ls_time convert(varchar, getdate(), 112) _ replace(convert(varchar, getdate(), 108), :, )-- 需…...

MBD_入门篇_21_SimulinkSignalAttributes

21.SignalAttributes 21.1 概述 Signal Attributes&#xff0c;信号属性&#xff0c;信号特性。 21.2 回顾常用模块 21.2.1 DataTypeConversion 数据类型转换模块&#xff0c;可以对信号的数据类型进行强制转换。无符号数据与有符号数据相加&#xff0c;我们可以将无符号数据转…...

Web前端高级课程:深入探索与技能飞跃

Web前端高级课程&#xff1a;深入探索与技能飞跃 在数字化时代的浪潮中&#xff0c;Web前端技术日新月异&#xff0c;对前端开发者的技能要求也日益提高。为了满足这一需求&#xff0c;我们精心打造了一款Web前端高级课程&#xff0c;旨在帮助学员掌握最前沿的前端技术&#x…...

螺丝工厂vtk ThreadFactory(1)

螺丝工厂vtkThreadFactory (1) 缘起 几年前的探索在Python里应用Openscad实现3D建模之3D螺纹建模初探3 新的参考: generating nice threads in openscadvtkRotationalExtrusionFilter 辅助AI: coze 笔记&#x1f4d2;: openscad 代码分析 // 半径缩放函数&#xff0c;用…...

Android13 蓝牙协议属性配置详解

Android13 蓝牙协议属性配置详解 文章目录 Android13 蓝牙协议属性配置详解一、前言二、Android13 蓝牙协议属性配置1、Profile 属性和暴露接口的定义2、蓝牙协议属性定义3、系统代码中判断蓝牙协议是否使能的代码 三、其他1、adb 窗口中查看蓝牙协议属性2、动态设置蓝牙prop协…...

南通国际高中有哪些?南通惠立学校高中部校长见面日重磅来袭

惠灵顿&#xff08;中国&#xff09;自2011年成立以来&#xff0c;一直坚持深耕国际与双语教育&#xff0c;拥有丰厚的办学经验。依托于集团化的深厚经验南通惠立学校于2024-2025学年开设9-11年级&#xff0c;这所南通国际高中为高中学生搭建一个集卓越升学成果、强大师资、纯正…...

Al智能图像处理APP,安卓手机专用一键优化工具资源合集下载

### 标题&#xff1a;Al智能图像处理APP&#xff0c;安卓手机专用一键优化工具资源合集下载 随着科技的进步&#xff0c;图像处理技术也在不断提升。为了满足用户对图像处理日益增长的需求&#xff0c;我们隆重推出了一款功能强大的图像处理工具——Al智能图像处理APP。这款安…...

Kettle根据分类实现Excel文件拆分——kettle开发31

将整理好的一份供应商付款明细Excel文件&#xff0c;按供应商拆分成多个Excel文件。 实现思路 本文我们首先将供应商付款明细表&#xff0c;按照“名称”拆分成多份Excel文件。拆分Excel文件打算用两个转换实现&#xff0c;一个用来将Excel数据读取到参数中&#xff0c;另外一…...

merkle tree中文

Merkle tree merkle tree中文文档英文文档 #include <cstdlib> #include <string> #include <bitcoin/bitcoin.hpp>BC_USE_LIBBITCOIN_MAINusing namespace bc;bc::hash_digest calculate_merkle_root(bc::hash_list &merkle);int bc::main(int argc, …...

制作自己的 @OnClick、@OnLongClick(告别 setOnClickListener,使用注解、反射和动态代理)

前言 前面我们说过 ButterKnife 这个库&#xff0c;这个库实现不仅实现了 View 的绑定&#xff0c;而且还提供了大量的注解如 BindView、OnClick、OnLongClick 等来简化开发过程中事件绑定。而这些功能的实现是通过 APT 也就是注解处理器&#xff0c;在编译期间生成 Java 代码…...