VB读写INI文件的四个函数详解

合集下载

INI文件读写详解

INI文件读写详解
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // 同1(1)
LPCTSTR lpKeyName, // 同1(1)
LPCTSTR lpDefault, // 同1(1)
LPTSTR lpReturnedString, // 同1(1)
INI文件的读写详解
INI文件读写 文章指数:0 CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
int i; //i指向数组chSectionNames的某个位置,从0开始,顺序后移
int j=0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
int count=0; //统计节的个数
//CString name;
//char id[20];
//在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym
//若Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为:
::WritePrivateProfileString("Test","id","xym",".\\ex1.ini");
::GetPrivateProfileSectionNames(chSectionNames,2048,".\\ex1.ini");
for(i=0;i<2048;i++,j++)

VB如何操作INI文件方法详解

VB如何操作INI文件方法详解

VB如何操作INI文件方法详解在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置、大小、一些用户设置的数据等等,在Dos 下编程的时候,我们一般自己产生一个文件,由自己把这些数据写到文件中,然后在下一次执行的时候再读出来使用。

在Win32 编程中当然你也可以这样干,但Windows 已经为我们提供了两种方便的办法,那就是使用注册表或者ini 文件(Profile)来保存少量数据。

本文中先介绍一下 .ini 文件的使用。

ini 文件是文本文件,中间的数据格式一般为:[Section1 Name]KeyName1=value1KeyName2=value2...[Section2 Name]KeyName1=value1KeyName2=value2ini 文件可以分为几个 Section,每个 Section 的名称用 [] 括起来,在一个 Section 中,可以有很多的 Key,每一个 Key 可以有一个值并占用一行,格式是 Key=value,Win32 对 ini 文件操作的 api 中,有一部分是对 win.ini 操作的,有一部分是对用户自定义的 ini 文件操作的。

Win.in 和 system.ini 是Windows的两个非常重要的初始化文件,Windows将用户所作的选择以及各种变化的系统信息记录在这两个文件中。

System.ini 描述了系统硬件的当前状态,Win.ini 文件则包含了Windows 系统运行环境的当前配置。

由于 Win.ini 文件的重要性和常用性,Win32 中有专门对 Win.ini 进行操作的 api,它们是:GetProfileInt - 从 Win.ini 文件的某个 Section 取得一个 key 的整数值,它的原形是:GetProfileInt(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址INT nDefault // 如果 Key 值没有找到,则返回缺省的值是多少);如果 Key 值没有找到的话,返回值是 nDefault 指定的缺省值,如果 Key 中的值是负数,则返回 0,如果 Key 指定的是数字和字符串的混合,则返回数字部分的值,比如说 x=1234abcd,则返回 1234GetProfileString - 从 Win.ini 文件的某个 Section 取得一个 key 的字符串,它的原形是:GetProfileString(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址LPCTSTR lpDefault, // 如果 Key 值没有找到,则返回缺省的字符串的地址LPTSTR lpReturnedString, // 返回字符串的缓冲区地址DWORD nSize // 缓冲区的长度);返回的字符串在缓冲区内,返回的eax 值是返回的字符串的长度(不包括尾部的0)GetProfileSection - 从 Win.ini 文件中读出整个 Section 的内容,它的原形是:GetProfileSection(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPTSTR lpReturnedString, // 返回数据的缓冲区地址DWORD nSize // 返回数据的缓冲区长度);WriteProfileSection - 将一个整个 Section 的值写入 Win.ini 文件的指定 Section 中,它的原形是:WriteProfileSection(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpString // 要写入的数据的地址);如果 Win.ini 没有指定的 Section,API 会新建立一个并写入数据,如果已经存在,则先删除原来 Seciton 中所有的 Key 值然后写入新的。

VB读写ini文件

VB读写ini文件

VB读写ini文件(1)2007-06-20 11:32自从注册表诞生以来ini文件正在逐渐失去其市场占有率,然而基于ini文件的独立性,致使其还没有到达退出历史舞台的地步,很多应用程序的初始化和一些界面参数的设置仍然很愿意从ini文件中读取,为了保证操作需用参数对ini文件的读取的通明性,建议使用一个模块来完成此工作。

注:所有操作调用标准的Win API函数来完成。

Dim Ret As LongDim Start As LongPublic FileName As StringConst BufSize = 10240Dim buf As String * BufSizePrivate Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As LongPrivate Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPublic Sub SetValue(ByVal clsName As String, ByVal key As String, ByVal V As String) Ret = WritePrivateProfileString(clsName, key, V, FileName)End SubPublic Function GetValue(ByVal clsName As String, ByVal key As String) As String Ret = GetPrivateProfileString(clsName, key, "", buf, BufSize, FileName)Start = 1GetValue = RetStr()End FunctionPrivate Function RetStr() As StringDim i As Longi = InStr(Start, buf, Chr(0))If i > Start ThenRetStr = Mid(buf, Start, i - Start)End IfStart = i + 1End Function至此已经完成了对一个完整的独立模块的封装,接下来就来看看怎么引用(其实看完上面程序就明了了)VB读写INI文件(2)2007-06-20 11:32INI 文件是什么样子?——不会吧,这都不知道。

VB读写INI文件

VB读写INI文件

VB读写INI文件今天,我们将应用制作一个能够实现读写INI文件的应用程序。

程序运行结果如图所示。

运行结果技术要点●INI文件的格式●GetPrivateProfileInt()和GetPrivateProfileString()函数●WritePrivateProfileString()函数实现步骤■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中,选择“Windows应用程序”,在名称域中输入“RWIni”,然后选择保存路径。

单击“确认”。

■添加控件和菜单向当前窗体上添加两个Button控件,用于控制读写INI文件;一个Group控件和两个RadioButton控件,用于控制读写整型数据还是字符串型;三个Label控件和三个TextBox 控件,用于标注和输入节名、键名和值;其余两个Label控件,一个表示当前打开的文件名,另一个表示读写的状态。

最后添加一个MainMenu控件,生成菜单“文件”、“退出”,其中“文件”下有一个子菜单“打开INI文件”。

■设置属性切换到“属性栏”,对窗体上的控件设置属性。

详细情况见下表。

窗体各控件的属性值知识点:一个INI文件由若干节(Section)组成,每个节中又由若干个关键字(Keyword)和值组成。

关键字是用来保存独立的程序设置和那些重要信息的,用于控制应用程序的某个功能;值可以是整型数或字符串。

如果值为空,则表示应用程序已经为该关键字指定了缺省值。

INI文件的一般形式如下:…………[Section]keyword=value…………INI文件有严格的格式要求:(1)节名必须加“[”和“]”。

(2)对文件做注释,要以“;”开头。

(3)关键字后必须有“=”。

■添加代码keywordinfo = txtkeyword.TextValueinfo = txtvalue.Text' 检查输入是否合法,不合法时,提示警告信息。

在VB中INI文件的读写

在VB中INI文件的读写

3,参数解释:
例如INI文件中有这么一块:
[main]
FontColor=801085
其中:
main .....................是KeyName
801085 ...............是String
1,模块:
Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, lpKeyName As Any, ByVal lpDefault As String, ByVal lpRetunedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Function GetINI(AppName As String, KeyName As String, filename As String) As String
Dim RetStr As String
RetStr = String(10000, Chr(0))
GetINI = Left(RetStr, GetPrivateProfileString(AppName, ByVal KeyName, "", RetStr, Len(RetStr), filename))
End Function
2,调用:
读:Rtn=GetINI(appname, keyname, filename)
写:SaveINI appname,keyname,string,filename

VB 操作INI文件方法(经典详细教程)

VB 操作INI文件方法(经典详细教程)

1.定义一些变量Public IniFileName As String, vbNullString As String, maxSize As Long, section1 As String, section2 As String2.初始话这些变量Public Function initial()IniFileName = App.Path & "" & "config.ini"vbNullString = ""maxSize = 255section1 = "basics"section2 = "others"temp_str = String(255, 0) '建立缓冲区End Function3.声明INI函数Public Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As String, _ByVal nDefault As Long, _ByVal lpFileName As String) As LongPublic Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As Any, _ByVal lpDefault As String, _ByVal lpReturnedString As String, _ByVal nSize As Long, _ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As Any, _ByVal lpString As Any, _ByVal lpFileName As String) As Long4.调用函数dim source as stringGetPrivateProfileString section1, "source", vbNullString, temp_str, maxSize, IniFileNamesource = Mid(temp_str, 0, 5) '缓冲区长度249,直接去匹配是不可以的,需要首先提取出有效字符xpos.Text = GetPrivateProfileInt(section1, "xpos", 1, IniFileName)dim a as intergera = GetPrivateProfileInt(section1, "auto", 1, IniFileName) WritePrivateProfileString section1, "auto", "0", IniFileName下一个例子Option ExplicitPrivate Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ( _ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ( _ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _ByVal lpFileName As String) As LongPrivate Function GetIni(ByVal ApplicationName As String, ByVal KeyName As String, ByVal FileName As String) As StringDim Buff As String, TmpStr As StringBuff = String(1024, 0)Call GetPrivateProfileString(ApplicationName, KeyName, "", Buff, Len(Buff) + 1, FileName)If Asc(Mid(Buff, 1, 1)) = 0 Then GetIni = "": Exit FunctionDim I As IntegerFor I = 2 To Len(Buff)If Asc(Mid(Buff, I, 1)) = 0 Then TmpStr = Mid(Buff, 1, I - 1)NextIf TmpStr = "" Then TmpStr = BuffGetIni = TmpStrEnd FunctionPrivate Function PutIni(ByVal ApplicationName As String, ByVal KeyName As String, ByVal Str As String, ByVal FileName As String) As Long WritePrivateProfileString ApplicationName, KeyName, Str, FileNameEnd FunctionPrivate Function DelIni(ByVal ApplicationName As String, ByVal KeyName As String, ByVal FileName As String) As LongWritePrivateProfileString ApplicationName, KeyName, 0&, FileNameEnd FunctionPrivate Sub Form_Load()Shell (GetIni("lujing", "pa", "INI文件的路径及名称.ini") & "\" & GetIni("lujing", "pa1", "INI文件的路径及名称.ini"))End Sub再次讲解这是API函数,使用前必须在公共部分定义,可以建公共模块,也可以在窗体最上面写.代码:Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVallpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long然后GetPrivateProfileString WritePrivateProfileString 这两个函数就可以用了.读取和写入代码如下Private Sub SetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String)Dim res%res% = WritePrivateProfileString(SectionName, KeyWord, ValStr, "C:\123.ini") End SubPrivate Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As StringDim llLen As LongDim ResultString As StringResultString = Space(100)llLen = GetPrivateProfileString(SectionName, KeyWord, DefString, ResultString, 100, "C:\123.ini")GetIniS = Mid(ResultString, 1, llLen)End Function。

读写INI文件的函数介绍

读写INI文件的函数介绍

读写INI文件函数的介绍INI文件就是扩展名为“ini”的文件。

在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“System32.ini”和“Win.ini”。

该文件主要存放用户所做的选择以及系统的各种参数。

用户可以通过修改INI文件,来改变应用程序和系统的很多配置。

但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息放进了注册表中。

但在某些场合,INI文件还拥有其不可替代的地位。

本文就来探讨一下C#是如何对INI进行读写操作。

INI文件的结构INI文件是一种按照特点方式排列的文本文件。

每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。

其一般形式如下:[Section1]KeyWord1 = ValuelKeyWord2 = Value2……[Section2]KeyWord3 = Value3KeyWord4 = Value4C#和Win32 API函数C#并不像C++,拥有属于自己的类库。

C#使用的类库是.Net框架为所有.Net程序开发提供的一个共有的类库——.Net FrameWork SDK。

虽然.Net FrameWork SDK内容十分庞大,功能也非常强大,但还不能面面俱到,至少它并没有提供直接操作INI文件所需要的相关的类。

在本文中,C#操作INI文件使用的是Windows系统自带Win32的API函数——WritePrivateProfileString()和GetPrivateProfileString()函数。

这二个函数都位于“kernel32.dll”文件中。

VB开发应用程序如何使用INI文件

VB开发应用程序如何使用INI文件

用VB开发应用程序如何使用INI文件为了方便用户使用和使系统具有灵活性,大多数Win-dows应用程序将用户所做的选择以及各种变化的系统信息记录在初始化(INI)文件中。

因此,当系统的环境发生变化时,可以直接修改INI文件,而无需修改程序。

由此可见,INI文件对系统功能是至关重要的。

本文将介绍采用VisualBasicforWindows(下称VB)开发Windows应用程序时如何读写INI文件。

INI文件是文本文件,由若干部分(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,每个关键词会控制应用程序某个功能的工作方式,等号右边的值(value)指定关键词的操作方式。

其一般形式如下:[Section1]KeyWord1=ValuelKeyWord2=Value2……[Section2]KeyWord1=Value1KeyWord2=Value2……其中,如果等号右边无任何内容(即Value为空),那就表示Windows应用程序已为该关键词指定了缺省值,如果在整个文件中找不到某个关键词(或整个一部分),那同样表示为它们指定了缺省值。

各个部分所出现的顺序是无关紧要的,在每一个部分里,各个关键词的顺序同样也无关紧要。

读写INI文件通常有两种方式:一是在Windows中用“记事本”(Notepad)对其进行编辑,比较简单,无需赘述;二是由Windows应用程序读写INI文件,通常是应用程序运行时读取INI文件中的信息,退出应用程序时保存用户对运行环境的某些修改。

关键词的值的类型多为字符串或整数型,应分两种情况读写。

为了使程序具有可维护性和可移植性,最好把对INI文件的读写封装在一个模块(RWINI.BAS)中,在RWI-NI.BAS中构造GetIniS和GetIniN函数以及SetIniS和Se-tIniN过程,在这些函数和过程中需要使用WindowsAPI的“GetPrivateprofileString”、“GetPrivateProfileInt”和“WritePrivateProfileString”函数。

vbsini读写

vbsini读写

vbsini读写''函数:设置ini值(ini路径,目标节点,目标键,目标值)''注:若ini文件不存在则创建;节点或键不存在则添加FunctionSetIniValue(path,sectionName,keyName,value)Dimfso,fileSetfso=CreateObject("Scripting.FileSystemObject") Setfile=fso.OpenTextFile(path,1,true)Dimline,cache,inSection,sectionExist,keyExist DoUntilfile.AtEndOfStreamline=file.ReadlineifStrComp(Trim(line),"["+sectionName+"]",1)=0Then inSection=TruesectionExist=TrueEndIfifinSectionAndLeft(LTrim(line),1)="["AndStrComp(Trim(line)," ["+sectionName+"]",1)<>0TheninSection=FalseIfNotkeyExistThencache=cache+keyName+"="+value+vbCrLfkeyExist=TrueEndIfEndIfifinSectionAndInStr(line,"=")<>0Thenss=Split(line,"=")IfStrComp(Trim(ss(0)),keyName,1)=0Thenline=ss(0)+"="+valuekeyExist=TrueEndIfEndIfcache=cache+line+vbcrlfLoopfile.CloseIfnotsectionExistThencache=cache+"["+sectionName+"]"+vbCrLf cache=cache+keyName+"="+value+vbCrLf ElseIfNotkeyExistThencache=cache+keyName+"="+value+vbCrLf EndIfSetfile=fso.OpenTextFile(path,2,True) file.Write(cache)file.CloseEndFunction''调用SetIniValue"C:\test.ini","Other","ccc","aaa"''读INI文件strIniFile="C:\test.ini"strTemp=ReadINI(strIniFile,"Other","ccc")MsgBox"ccc="&strTemp,vbInformation''read函数FunctionReadINI(FilePath,Bar,PrimaryKey) Dimfso,sReadLine,i,j,ssSetfso=CreateObject("Scripting.FileSystemObject") SetIniFile=fso.opentextfile(FilePath,1) DoUntilIniFile.atendofstreamsReadLine=IniFile.readlineIfsReadLine=""ThenIniFile.skiplineElseIfTrim(sReadLine)="["&Bar&"]"Then''找到小节名''查找该小节名下的键名DoUntilIniFile.atendofstreamsReadLine=IniFile.readline''读取小节名后的行j=InStr(sReadLine,"=")Ifj>0Then''小节名后的文本行存在IfInStr(Left(sReadLine,j),PrimaryKey)>0Then''从"="左边字符串找到键名ss=Trim(Right(sReadLine,Len(sReadLine)-InStr(sReadLine,"=")))''读取等号后的部分ExitDoEndIfEndIfLoopEndIfLoopIniFile.CloseSetfso=NothingReadINI=ssEndFunction。

vb文件读写知识点小结

vb文件读写知识点小结

A.顺序文件的读和写:一、打开文件,读取文件内容:Open App.Path & "\in5.dat" For Input As #1 '打开已经存在的顺序文件。

情况1:Input #1,varname 依次读出文件内容,赋值给变量情况2:line Input #1,vaname '按行读出文件内容,赋值给变量情况3:s = Input(LOF(1), #1) '把文件所有内容全部读出,赋值给变量。

Close #1二、写文件:Open App.Path & "\out5.dat" for output As #1'建立顺序文件。

Print #1,varname '将变量内容写到文件中。

Close #1B.随机文件的读和写一、打开文件:Type Record ' 定义用户自定义的数据类型。

ID As IntegerName As String * 20End TypeDim MyRecord As Record, Position ' 声明变量。

' 为随机访问打开样本文件。

Open "TESTFILE" For Random As #1 Len = Len(MyRecord)' 使用 Get 语句来读样本文件。

Position = 3 ' 定义记录号。

Get #1, Position, MyRecord ' 读第三个记录。

Close #1 ' 关闭文件。

二、写文件Type Record ' 定义用户自定义数据类型。

ID As IntegerName As String * 20End TypeDim MyRecord As Record, RecordNumber ' 声明变量。

' 以随机访问方式打开文件。

ini配置文件的读写

ini配置文件的读写

ini配置文件的读写ini配置文件的读写很多时候,我们的程序运行前需要用户做一些相关的设置,而且我们总是需要把一些配置信息保存下来,那天一直在思考怎么解决这个问题,突然就想到了在一些软件安装目录下的ini文件,然后经过查找资料发现其实ini文件既方便又实用。

下面对其使用进行总结:一、将信息从ini文件中读取到变量中首先,看一个ini文件的示例。

[连接参数]IpServer=127.0.0.1DataBase=DB_TESTUserID=testPassword=123456;注释用英文分号以上就是一个简单的配置文档。

读取信息所用的函数为DWORD GetPrivateProfileString(LPCTSTR lpAppName, // section nameLPCTSTR lpKeyName, // key nameLPCTSTR lpDefault, // default stringLPTSTR lpReturnedString, // destination bufferDWORD nSize, // size of destination bufferLPCTSTR lpFileName // initialization file name);第一个参数为字段名,上例中的[连接参数];第二个参数键名,即变量名,上例中的IpServer、DataBase等等;第三个参数指,如果ini文件中没有前两个参数指定的字段名或键名,则将lpDefault的值赋给变量,也就是缺省值;第四个参数是接收ini文件中键名的值的CString对象,即目的缓存器;第五个参数是目的缓存器的大小;第六个参数是ini文件的完整路径。

如下:GetPrivateProfileString(L"连接参数",L"ipServer",L"127.0.0.1",ipStr.GetBuffer(MAX_PATH),MAX_PATH,curPath);在此额外说一点,一般来说ini文件和exe文件是放在一起的,所以这里涉及到当前路径的问题,该问题在本站《如何获取EXE可执行文件的所在路径》一文中讲得很清楚,而在此我用另一个全局函数也可以实现,假如我们的文件是配置.ini,则如下:CString curPath;//存储路径的CString对象AfxGetModuleFileName(AfxGetInstanceHandle(),curPath);curPath=curPath.Left(curPath.ReverseFind('\\'))+'\\';curPath.AppendFormat(L"配置.ini");或者还可以使lpFileName的值为:“.//配置.ini”来定位到当前目录(这种方法笔者还未测试)。

VB如何操作INI文件方法详解

VB如何操作INI文件方法详解

VB如何操作INI文件方法详解INI文件是Windows系统中常用的配置文件格式,用于存储程序的配置信息。

在VB中,可以通过读取和写入INI文件来操作和修改配置信息。

下面是详细的操作INI文件的方法:1.引入API函数:在VB中,需要使用一些API函数来实现对INI文件的读取和写入操作,因此我们需要在代码中引入这些函数。

在模块中添加以下代码:```vbPrivate 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 Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long ```2.读取INI文件:读取INI文件的方法是使用GetPrivateProfileString函数,该函数有6个参数,分别对应应用程序名称、键名、默认值、返回的字符串、字符串长度和INI文件路径。

VB如何操作INI文件方法详解(3)

VB如何操作INI文件方法详解(3)

VB如何操作INI文件方法详解(3)DimDatabasenameAsStringDatabasename=GetIniS("数据库","职工","")IfDatabaseName=""ThenDatabaseName=InputBox("请输入数据库《职工》的目录"),App.Title)’也可通过"文件对话框"进行选择OnErrorResumeNextSetdb=OpenDatabas(DatabaseName)IfErr<>0ThenMsgBox"打开数据库失败!",MB-ICONSTOP,App.Title:GotoErrorProcessingElseSetIniS"数据库","职工",DatabaseNameEndIfOnErrorGoT o0……实例2:为了方便用户操作,有时需要保存用户界面的某些信息,例如窗口的高度和宽度等。

装载窗体时,从INI文件中读入窗体高度和宽度,卸载窗体时将窗体当前高度和宽度存入INI文件,代码如下: Sub Form1_Load()……Forml.Height=GetIniN("窗体1","高度",6000)Form1.Width=GetIniN("窗体1","高度",4500)EndSub……Sub Form1_Unload()……SetIniN"窗体1","高度",Me.HeightSetIniN"窗体1,"宽度",Me.Width ……End Sub。

vba中writeinifile的用法

vba中writeinifile的用法

vba中writeinifile的用法VBA(Visual Basic for Applications)是一种用于Microsoft Office应用程序编程的语言。

它允许用户通过编写宏来自动执行重复的任务或处理数据。

在VBA中,使用"WriteInFile"是将数据写入文件的一种方法。

在本篇文章中,我将一步一步回答关于VBA中"WriteInFile"的用法,并探讨它的应用。

第一步,了解WriteInFile的语法在VBA中,WriteInFile是一个自定义函数,需要用户在代码中定义和实现。

它的语法如下:Function WriteInFile(filename As String, text As String) As Boolean ' 写入文件的具体实现代码End Function函数的参数包括文件名(filename)和要写入文件的文本内容(text)。

函数的返回值为一个布尔类型,表示写入是否成功。

在函数的实现中,我们需要编写具体的代码来将文本写入指定的文件。

第二步,实现WriteInFile函数的具体代码要实现WriteInFile函数,我们需要使用VBA提供的FileSystemObject 对象。

这个对象允许我们访问和操作计算机上的文件和文件夹。

下面是一个基本的WriteInFile函数的示例代码:Function WriteInFile(filename As String, text As String) As Boolean Dim fso As ObjectDim file As Object' 创建FileSystemObject对象Set fso = CreateObject("Scripting.FileSystemObject")' 打开文件(如文件不存在则创建它)Set file = fso.OpenTextFile(filename, 2, True)' 写入文本file.WriteLine text' 关闭文件file.Close' 释放资源Set file = NothingSet fso = Nothing' 返回写入成功WriteInFile = TrueEnd Function在这个示例代码中,我们首先创建了一个FileSystemObject对象,然后使用OpenTextFile方法来打开文件。

迅速掌握VB.NET读取INI文件操作方法

迅速掌握VB.NET读取INI文件操作方法

迅速掌握读取INI文件操作方法•迅速掌握读取INI文件操作方法读取INI文件的相关操作方法对于初学者来说应该还是比较容易掌握的。

我们可以通过本文介绍的具体代码编写来具体了解其中的操作技巧。

做为一款最新的开发平台,为开发人员带来了很大的帮助。

因为对XML前不了解,所以对XML方式来做配置文件我都不能很好的实现,但为了应行,只有先使用INI的文来记录了,也就沿用了VB6里的INI文读取方法。

o浅析中冒号的作用o Flash控制程序的操作技巧分享o 开发效率优越性评比o 实现接口相关操作方法详解o Socket编程实际操作方法介绍下面请看读取INI文件的相关代码示例:1.'声明INI配置文件读写API函数2.Private Declare Function GetPrivateProfileString()3.Function GetPrivateProfileString Lib "kernel32"4.Alias "GetPrivateProfileStringA" (ByVal5.lpApplicationName As String, ByVal lpKeyName As6.String, ByVal lpDefault As String, ByVal lpReturned7.String As String, ByVal nSize As Int32, ByVal8.lpFileName As String) As Int329.Private Declare Function WritePrivateProfileString()10.Function WritePrivateProfileString Lib "kernel32"11.Alias "WritePrivateProfileStringA" (ByVal12.lpApplicationName As String, ByVal lpKeyName As13.String, ByVal lpString As String, ByVal lpFileName14.As String) As Int3215.'定义读取配置文件函数16.Public Function GetINI()Function GetINI(ByVal17.Section As String, ByVal AppName As String, ByVal18.lpDefault As String, ByVal FileName As String)19.As String20.Dim Str As String = LSet(Str, 256)21.GetPrivateProfileString(Section, AppName,22.lpDefault, Str, Len(Str), FileName)23.Return Microsoft.VisualBasic.Left(Str, InStr24.(Str, Chr(0)) - 1)25.End Function26.'定义写入配置文件函数27.Public Function WriteINI()Function WriteINI28.(ByVal Section As String, ByVal AppName As29.String, ByVal lpDefault As String, ByVal30.FileName As String) As Long31.WriteINI = WritePrivateProfileString(Section,32.AppName, lpDefault, FileName)33.End Function34.Private Sub Form1_Load()Sub Form1_Load(ByVal35.sender As System.Object, ByVal e As System.36.EventArgs) Handles MyBase.Load37.Dim path As String38.path = Application.StartupPath + "\server.ini"39.TextBox1.Text = GetINI("Server", "IP", "", path)40.TextBox2.Text = GetINI("Server", "port", "", path)41.End Sub42.Private Sub Button1_Click()Sub Button1_Click43.(ByVal sender As System.Object, ByVal e As44.System.EventArgs) Handles Button1.Click45.Try46.Dim path As String47.path = Application.StartupPath + "\server.ini"48.WriteINI("Server", "IP", TextBox1.Text, path)49.WriteINI("Server", "port", TextBox2.T ext, path)50.MsgBox("配置设置已经成功")51.Me.Close()52.Catch ex As Exception53.MsgBox("错误")54.End Try55.End Sub读取INI文件的相关操作就为大家介绍到这里。

excel之vba读写ini文件

excel之vba读写ini文件
strSection = "Application"
Dim strKey As String
strKey = "Version"
Dim strValue As String
strValue = "1.0.30"
WriteIntoIni strIniFile, strSection, strKey, strValue
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedStrine As Long, _
ByVal lpFileName As String) As Long
Resume Exit_Door
End Sub
'vba读写ini文件
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationname As String, _
Dim strRtn As String
strRtn = Space(256)
Dim lngRtn As Long
lngRtn = GetPrivateProfileString(Section, Key, DefaultValue, strRtn, 255, IniFile)
If lngRtn > 0 Then
Dim lngRtn As Long
lngRtn = WritePrivateProfileString(Section, Key, Value, IniFile)

VB6读写INI文件

VB6读写INI文件

VB6读写INI文件一、实现方法如下:1、新建一个工程/窗体(窗体取名为ini.frm),在此窗体中添加三个命令按钮控件,分别为command1、command2、command3 command1.Caption= "write"command2.Caption= "read"command3.Caption= "End"2、代码部分:Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" ( _ByVal lpApplicationName As String, _ByVal lpKeyName As String, _ByVal nDefault As Long, _ByVal lpFileName As String) As LongPrivate Sub Command1_Click()Dim A As Long'写信息'修改ABC.INI文件中各字段中关键字的值'如果该文件不存在会自动建立,当函数返回值为0时说明修改不成功A = WritePrivateProfileString("系统时间", "本次操作日期", Str$(Date), App.Path & "\ABC.INI")A = WritePrivateProfileString("系统时间", "本次操作时间", Str$(Time), App.Path & "\ABC.INI")A = WritePrivateProfileString("窗体位置及大小", "顶部", Str$(Form1.T op), App.Path & "\ABC.INI")A = WritePrivateProfileString("窗体位置及大小", "高度", Str$(Form1.Height), App.Path & "\ABC.INI")A = WritePrivateProfileString("窗体位置及大小", "宽度", Str$(Form1.Width), App.Path & "\ABC.INI")A = WritePrivateProfileString("窗体位置及大小", "左部", Str$(Form1.Left), App.Path & "\ABC.INI")If A = 0 Then MsgBox ("写文件时出错")End SubPrivate Sub Command2_Click()Dim A As LongDim T As StringDim x As Integer'读取信息Form1.Cls 'Form1清屏T = Space$(1000) '事先定义读取值的字串宽度'读取ABC.INI文件中TIP字段中START的值并打印出来'当函数返回值为0时说明读取数据出错A = GetPrivateProfileString("系统时间", "本次操作时间", "", T, 1000, App.Path & "\ABC.INI")Print Left$(T, Len(Trim$(T)) - 1)If A = 0 Then MsgBox "找不到所需字段": Exit Subx = GetPrivateProfileInt("窗体位置及大小", "高度", x, App.PathPrint "高度=" & xx = GetPrivateProfileInt("窗体位置及大小", "宽度", x, App.Path & "\ABC.INI")Print "宽度=" & xx = GetPrivateProfileInt("窗体位置及大小", "左部", x, App.Path & "\ABC.INI")Print "左部=" & xx = GetPrivateProfileInt("窗体位置及大小", "顶部", x, App.Path & "\ABC.INI")Print "顶部=" & xIf A = 0 Then MsgBox "找不到所需字段": Exit SubA = GetPrivateProfileString("系统时间", "本次操作日期", "", T, 1000, App.Path & "\ABC.INI")Print Left$(T, Len(Trim$(T)) - 1)End SubPrivate Sub Command3_Click()Call Command1_ClickEndEnd SubPrivate Sub Form_Load()Dim A As LongDim T As StringDim x As Integer'读取信息x = 0T = Space$(1000) '事先定义读取值的字串宽度'读取ABC.INI文件中TIP字段中START的值并打印出来'当函数返回值为0时说明读取数据出错x = GetPrivateProfileInt("窗体位置及大小", "高度", x, App.PathForm1.Height = xx = GetPrivateProfileInt("窗体位置及大小", "宽度", x, App.Path & "\ABC.INI")Form1.Width = xx = GetPrivateProfileInt("窗体位置及大小", "左部", x, App.Path & "\ABC.INI")Form1.Left = xx = GetPrivateProfileInt("窗体位置及大小", "顶部", x, App.Path & "\ABC.INI")Form1.Top = xEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Select Case UnloadModeCase 0:Call Command1_ClickCase 1:Call Command1_ClickCase 2:Call Command1_ClickEnd SelectEnd Sub二、说明:注意是指定数据否与函数参数类型相一致--Anony专注的力量成就梦想全国最低价,天天在家冲照片,24小时发货上门!。

VB读写INI文件的四个函数

VB读写INI文件的四个函数

读写INI文件的四个函数'文件名SourceDB.ini文件Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByV al lpApplicationName As String, ByV al lpKeyName As Any, ByV allpDefault As String, ByV al lpReturnedString As String, ByV al nSize As Long, ByV al lpFileName As String) As LongPrivate Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByV al lpApplicationName As String, ByV al lpKeyName As Any, ByV allpString As Any, ByV al lpFileName As String) As Long'以下两个函数,读/写ini文件,固定节点setting,in_key为写入/读取的主键'仅仅针对是非值'Y:yes,N:no,E:errorPublic Function GetIniTF(ByV al In_Key As String) As BooleanOn Error GoTo GetIniTFErrGetIniTF = TrueDim GetStr As StringGetStr = VBA.String(128, 0)GetPrivateProfileString "Setting", In_Key, "", GetStr, 256, App.Path & "\SourceDB.ini" GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")If GetStr = "1" ThenGetIniTF = TrueGetStr = ""ElseGoTo GetIniTFErrEnd IfExit FunctionGetIniTFErr:Err.ClearGetIniTF = FalseGetStr = ""End FunctionPublic Function WriteIniTF(ByV al In_Key As String, ByV al In_Data As Boolean) As Boolean On Error GoTo WriteIniTFErrWriteIniTF = TrueIf In_Data = True ThenWritePrivateProfileString "Setting", In_Key, "1", App.Path & "\SourceDB.ini"ElseWritePrivateProfileString "Setting", In_Key, "0", App.Path & "\SourceDB.ini"End IfExit FunctionWriteIniTFErr:Err.ClearWriteIniTF = FalseEnd Function'以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键'针对字符串值'空值表示出错Public Function GetIniStr(ByV al AppName As String, ByV al In_Key As String) As StringOn Error GoTo GetIniStrErrIf VBA.Trim(In_Key) = "" ThenGoTo GetIniStrErrEnd IfDim GetStr As StringGetStr = VBA.String(128, 0)GetPrivateProfileString AppName, In_Key, "", GetStr, 256, App.Path & "\SourceDB.ini" GetStr = VBA.Replace(GetStr, VBA.Chr(0), "")If GetStr = "" ThenGoTo GetIniStrErrElseGetIniStr = GetStrGetStr = ""End IfExit FunctionGetIniStrErr:Err.ClearGetIniStr = ""GetStr = ""End FunctionPublic Function WriteIniStr(ByV al AppName As String, ByV al In_Key As String, ByV al In_Data As String) As BooleanOn Error GoTo WriteIniStrErrWriteIniStr = TrueIf VBA.Trim(In_Data) = "" Or VBA.Trim(In_Key) = "" Or VBA.Trim(AppName) = "" Then GoTo WriteIniStrErrElseWritePrivateProfileString AppName, In_Key, In_Data, App.Path & "\SourceDB.ini"End IfExit FunctionWriteIniStrErr:Err.ClearWriteIniStr = FalseEnd Function。

excel之vba读写ini文件

excel之vba读写ini文件

excel之vba读写ini文件'vba读写ini文件Public 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 Long, _ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" _Alias "WritePrivateProfileStringA" _(ByVal lpApplicationname As String, _ByVal lpKeyName As Any, _ByVal lsString As String, _ByVal lplFilename As String) As LongPublic Function ReadFromIni(ByVal IniFile As String, ByVal Section As String, ByVal Key As String, ByVal DefaultValue As String) As StringDim strRtn As StringstrRtn = Space(256)Dim lngRtn As LonglngRtn = GetPrivateProfileString(Section, Key, DefaultValue,strRtn, 255, IniFile)If lngRtn > 0 ThenstrRtn = Trim(strRtn)ReadFromIni = Mid(strRtn, 1, Len(strRtn) - 1)ElseReadFromIni = DefaultValueEnd IfEnd FunctionPublic Sub WriteIntoIni(ByVal IniFile As String, ByVal Section As String, ByVal Key As String, ByVal Value As String)Dim lngRtn As LonglngRtn = WritePrivateProfileString(Section, Key, Value, IniFile) If lngRtn > 0 ThenElseCall Err.Raise(-1, "IniFileUtil.WriteIntoIni", "Failed to write")End IfEnd SubPublic Sub TestVbIni01()On Error GoTo Err_HandlingDim strIniFile As StringstrIniFile = ActiveWorkbook.Path & "\\example.ini"Dim strSection As StringstrSection = "Application"Dim strKey As StringstrKey = "Version"Dim strValue As StringstrValue = "1.0.30"WriteIntoIni strIniFile, strSection, strKey, strValuestrValue = ReadFromIni(strIniFile, strSection, strKey, "") MsgBox "Version = " & strValue, vbOKOnlyExit_Door:Exit SubErr_Handling:MsgBox Err.Number & "-" & Err.Description, vbOKOnly Resume Exit_DoorEnd Sub。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、 Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
lpApplicationName String,指定在其中查找条目的小节。注意这个字串是不区分大小写的
lpKeyName String,欲获取的设置项或条目。这个支持不区分大小写
nDefault Long,指定条目未找到时返回的默认值
lpFileName String,初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
参数类型及说明:
lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表
说明:
在初始化文件指定小节内设置一个字串 ,返回值Long,非零表示成功,零表示失败。会设置GetLastError
参数类型及说明:
lpApplicationName - String,要在其中写入新字串的小节名称。这个字串不区分大小写。
lpKeyName - Any,要设置的项名或条目名。这个字串不区分大小写。用vbNullString可删除这个小节的所有设置项。
说明 :
为初始化文件中指定的条目取得字串,返回值Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2)
Dim Result As Long
Result = GetPrivateProfileInt(App, Key, 0, FileName)
GetINIint = Result
End Function
'读字符串
Public Function GetINIstr(ByVal FileName As String, ByVal App As String, ByVal Key As String) As String
说明:
这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件,返回值Long,复制到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返回lpBuffer要求的长度。零表示失败。会设置GetLastError
VB读写INI文件的四个函数详解:
1、 Private Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
'以下两个函数,读/写ini文件,固定节点setting,in_key为写入/读取的主键
'仅仅针对是非值
'Y:yes,N:no,E:error
Public Function GetIniTF(ByVal In_Key As String) As Boolean
On Error GoTo GetIniTFErr
参数类型及说ห้องสมุดไป่ตู้:
lpBuffer String,指定一个字串缓冲区,用于装载Windows目录名。除非是根目录,否则目录中不会有一个中止用的“\”字符
nSize Long,lpBuffer字串的最大长度
自定义读写INI函数:
'写INI文件(字符串)
Public Sub WriteINI(ByVal FileName As String, ByVal App As String, ByVal Key As String, ByVal strValue As String)
Dim Result As Long
Result = WritePrivateProfileString(App, Key, strValue, FileName)
End Sub
'读整型
Public Function GetINIint(ByVal FileName As String, ByVal App As String, ByVal Key As String) As Long
WriteIniTF = True
If In_Data = True Then
WritePrivateProfileString "Setting", In_Key, "1", App.Path & "\SourceDB.ini"
Else
WritePrivateProfileString "Setting", In_Key, "0", App.Path & "\SourceDB.ini"
On Error GoTo GetIniStrErr
Dim Result As Long
Dim BufferStr As String * 255
Result = GetPrivateProfileString(App, Key, "", BufferStr, Len(BufferStr), FileName)
If Result = 0 Then
End If
Exit Function
WriteIniTFErr:
Err.Clear
WriteIniTF = False
End Function
'以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键
'针对字符串值
'空值表示出错
Public Function GetIniStr(ByVal AppName As String, ByVal In_Key As String) As String
GetIniTF = True
Dim GetStr As String
GetStr = VBA.String(128, 0)
GetPrivateProfileString "Setting", In_Key, "", GetStr, 256, App.Path & "\SourceDB.ini"
GetINIstr = ""
Else
GetINIstr = Left(BufferStr, Result)
End If
End Function
例子:
'文件名SourceDB.ini文件
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Err.Clear
GetIniTF = False
GetStr = ""
End Function
Public Function WriteIniTF(ByVal In_Key As String, ByVal In_Data As Boolean) As Boolean
On Error GoTo WriteIniTFErr
lpString - String,指定为这个项写入的字串值。用vbNullString表示删除这个项现有的字串。
lpFileName - String,初始化文件的名字。如果没有指定完整路径名,则windows会在windows目录查找文件。如果文件没有找到,则函数会创建它。
相关文档
最新文档