作用一、利用GetPrivateProfileString函数加载储存在文件的数据(代码中的变量值)

Public Class Form1
    Public CurrentPath As String = AppDomain.CurrentDomain.SetupInformation.ApplicationBase

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
        (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String,
         ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
        (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32
    '上面的函数成组合出现,函数名称和别名都可以改动,形参名称也可以改动,但是尽量不要去改动,这样大家都好理解意思。
    '第一个函数作用是从外部文件中导入数据,第二个函数作用是将程序中数据导入外部文件;文件中数据不会因为程序的关闭而消失(程序关闭会释放变量占据的内存,变量就是数据的意思)
    '第一个函数的参数表示的意思分别是:1、段落名称  2、对应项名称  3、默认值(当结果值获取失败,用默认值代替) 4、结果值  5、结果值的长度  6、文件路径
    '第二个函数的参数表示的意思分别是:1、段落名称  2、对应项名称  3、结果值  4、路径
    '个人认为一函数比而函数多两个参数是开发者一种保险的考虑,一般使用时,套用参数就可以。至于之间的区别等想深入了解时再去学习。(欢迎前辈留言指教)
    '程序中的setting有这两个函数的功能,但是我不知道setting有没有办法生成文件
    '还需要以下代码辅助,函数才能实现它的功能
    Public Function GetINI(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As String
        Dim Str As String = LSet(" ", 255)                '255是字符的长度,可以自己更改成其他长度;
        GetPrivateProfileString(Section, AppName, lpDefault, Str, Len(Str), FileName)     '这里可以看出Str表示结果值
        Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1)
        'Chr(0)字符串结束标志符号,又称“占位符”占位符看不见但是占一个字符位置
        '为什么以结束字符为查找依据,具体原因我也不知道。(希望高手留言赐教)。
        '这里感觉很不好理解,还如此麻烦,又是Left,又是InStr,又是Chr
        '可以直接返回Str,观察一下区别

End Function
    Public SuJu As String
    Dim GetStr As String

Function GetSuJu(ByVal AppName As String) As String
        Dim path As String = CurrentPath & "\IOsetting.ini"      ‘需要在文件夹提前创建,也可以代码中创建
        GetStr = LSet(" ", 255)
        SuJu = GetINI("段落名称", AppName, GetStr, Path)      ’四个参数三个给了实参,剩下的一个在调用函数时赋值

Return SuJu
    End Function

Public Sub SaveSuJu(ByVal AppName1 As String, ByVal a As String)
        Dim path As String = CurrentPath & "\IOsetting.ini"       ‘这个路径刚开始写时,我用了Public放在代码最上面。会导致写入数据不符合预期结果,新手可以自己试试
        WritePrivateProfileString("段落名称", AppName1, a, Path)
    End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

SaveSuJu("端口号", Comport.Text)
        SaveSuJu("波特率", Combit.Text)
        SaveSuJu("数据位", ComData.Text)
        SaveSuJu("校验位", ComJY.Text)
        SaveSuJu("停止位", ComStop.Text)        
    End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.Comport.Text = GetSuJu("端口号")
        Me.Combit.Text = GetSuJu("波特率")
        Me.ComData.Text = GetSuJu("数据位")
        Me.ComJY.Text = GetSuJu("校验位")
        Me.ComStop.Text = GetSuJu("停止位")
    End Sub

End Class

总结自己心得:

1、当记事本为空时运行程序(控件的文本也是空属性),因为我的代码没有给出默认值,所以结果如左图。然后向文本中输入对应值点保存,打开文件可以得到右图。下次再运行程序,程序加载代码就会把等号右边的内容加载到Form1窗体中.

2、从1条可知文件中的内容可以是代码生成(也可以自己写初始值)注意那些代码中没有的符号(等号,中括号)它们是GetPrivateProfileString函数自己生成的。

3、这只是GetPrivateProfileString函数的一种用法,一个人学习太孤独,太辛苦。希望在这里能结交到爱好一致的朋友,共同学习,共同进步。有一意者请留言。

GetPrivateProfileString函数之新手上路相关推荐

  1. python必备基础代码-新手上路必学的Python函数基础知识,全在这里了(多段代码举例)...

    原标题:新手上路必学的Python函数基础知识,全在这里了(多段代码举例) 导读:函数是Python中最重要.最基础的代码组织和代码复用方式.根据经验,如果你需要多次重复相同或类似的代码,就非常值得写 ...

  2. 新手上路必备的 DAX 函数(下)

    各位读者大家好~今天为大家带来的是新手上路必备的DAX函数下篇. 上篇链接☞ 新手上路必备的DAX函数 (上) 让我们整理好思路继续学习吧! 三 .统计函数 统计函数是最常用的函数,同时也是最复杂的函 ...

  3. 新手上路必备的 DAX 函数 (上)

    各位读者大家好!今天工坊给大家带来的是新手上路必备的DAX函数的上篇.如果你刚刚开始接触PBI无处下手,相信读完这篇文章之后你的学习会更加得心应手. 新手往往在刚开始接触PBI的时候,对DAX函数会比 ...

  4. Windows内核新手上路1——挂钩SSDT

    Windows内核新手上路1--挂钩SSDT 这个系列记录学习我学习windows内核的点点滴滴,高手请直接无视. 文章核心内容:挂钩SSDT中函数列NtOpenProcess,NtDuplicate ...

  5. Windows内核新手上路3——挂钩KeUserModeCallBack

    Windows内核新手上路3--挂钩KeUserModeCallBack 1.     简介 在Windows系统中,提供了几种方式从R0调用位于R3的函数,其中一种方式是KeUserModeCall ...

  6. Windows内核新手上路2——挂钩shadow SSDT

    Windows内核新手上路2--挂钩shadow SSDT 文章核心内容:安全软件窗口保护.安全输入.截屏保护的一些思路.挂钩NtUserFindWindowEx.NtUserGetForegroun ...

  7. HanLP《自然语言处理入门》笔记--1.新手上路

    文章目录 1. 新手上路 1.1 自然语言与编程语言的比较 1.2 自然语言处理的层次 1.3 自然语言处理的流派 1.4 机器学习 1.5 语料库 1.6 开源工具 1.7 总结 1.8 GitHu ...

  8. 自然语言处理之新手上路

    1. 新手上路 自然语言处理(Natural Language Processing,NLP)是一门融合了计算机科学.人工智能及语言学的交叉学科,它们的关系如下图所示.这门学科研究的是如何通过机器学习 ...

  9. python自然语言处理入门-新手上路

    新手上路 博主微信公众号(左).Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步! 目录 摘要 1. 自然语言与编程语言 2. 自然语言处理的层次 2.1 语 ...

最新文章

  1. Shell终端快捷键总结(mac)
  2. biu~ 你的智能语音客服已免费一键生成!
  3. 亲手完成四大企业实战项目,挑战Python全栈高薪岗位!
  4. RHCS图形界面建立GFS共享下
  5. 龙之谷哪个服务器最多,龙之谷哪些服务器数据互通 龙之谷数据互通详情介绍...
  6. centos8上docker tomcat容器访问报404解决方法
  7. python程序设计sgnx_Python中符号函数的数值积分
  8. 使用SecretScanner发现容器镜像和文件系统中的敏感数据
  9. 链表排序python
  10. 无线路由器怎么显示远端服务器,路由器远端服务器无响应是怎么回事
  11. gmx-MMPBSA — error while loading shared libraries: libgfortran.so.3: cannot open shared object file
  12. 两台WIN10电脑实现局域网文件共享
  13. FPGA-炼狱传奇-三态门之战
  14. 哈工大数据库系统(上):嵌入式SQL语言之动态SQL(十)课后测验与作业
  15. 华硕主板如何设置开机自启_华硕主板如何设置开机第一启动项方法大全
  16. Cordova 打包签名 Android release app
  17. QT4.7.3交叉编译到ARM后,字体大小如何调整?
  18. maya2020卸载不干净安装不了_maya2020卸载不干净_maya怎样卸载干净,如何完全彻底删除清理干净MAYA各种残留注册表和文件?......
  19. MySQL海量数据存储与优化(上)
  20. 转:干货 :手把手教你Tableau高级数据分析功能(附数据集)

热门文章

  1. py-eureka-client学习笔记
  2. java中isprime_java:19:找不到符号 符号:方法isPrime(int) 位置:类ziji_9
  3. 获取已安装设备的高级信息
  4. 华为路由器显示网络未连接到服务器,华为路由器Q1连接没有网络该怎么办
  5. 零基础而且英语不好可以学java吗
  6. CC2 条理分明-----独立思考
  7. FM信号、调制信号和载波
  8. 怎样使用快捷键在苹果Mac上强制退出应用程序?
  9. java中JAO,Java
  10. c++项目,制作GIF动态图