在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文件今天,我们将应用制作一个能够实现读写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' 检查输入是否合法,不合法时,提示警告信息。
INI文件读写
int CTestDlg::CalcCount(void)
{
TCHAR chSectionNames[2048]={0}; //所有节名组成的字符数组
char * pSectionName; //保存找到的某个节名字符串的首地址
int i; //i指向数组chSectionNames的某个位置,从0开始,顺序后移
LPCTSTR lpKeyName, // 键名,读取该键的值
LPCTSTR lpDefault, // 若指定的键不存在,该值作为读取的默认值
LPTSTR lpReturnedString, // 一个指向缓冲区的指针,接收读取的字符串
LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串
LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节
LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键
(1) 读取字符串
DWORD GetPrivateProfileString(
LPCTSTR lpAppName, // 同1(1)
ቤተ መጻሕፍቲ ባይዱLPCTSTR lpKeyName, // 同1(1)
LPCTSTR lpDefault, // 同1(1)
则可用以下语句读取age键的值:
int age;
age=::GetPrivateProfileInt("Test","age",0,".\\ex1.ini");
三、 删除键值或节
回顾一下WriteProfileString函数的说明
vba 给ini文件写入注释的方法
vba 给ini文件写入注释的方法注释是程序中非常重要的元素之一,注释能够让代码更加可读、易于维护和理解。
和其他编程语言一样,VBA也支持在代码中添加注释。
但是对于INI文件,它并不是一个编程语言,它是一种文本文件格式,因此,我们需要采用不同的方法来给INI文件添加注释。
INI文件格式介绍INI文件是一种文本文件格式,通常用于存储应用程序的配置信息。
INI文件格式定义了一种简单的键值对格式,其中每一行表示一个键值对,并用等号“=”将键和值分开。
例如:```[key1]value1=123在上面的例子中,我们定义了两个键值对,每个键值对都有一个键和一个值。
键和值之间用等号分开。
键使用方括号括起来,一个方括号代表一个键。
在INI文件中添加注释INI文件并没有一个标准的注释符号或格式,但是我们可以采用一些约定俗成的方式来添加注释。
1.使用分号在INI文件中,分号“;”通常被用来表示注释。
当我们在INI文件中添加注释时,可以在开头添加一个分号,然后添加注释内容。
例如:在以上例子中,我们给第一个键值对的值添加了一个注释。
我们也可以给整个键值对添加一个注释,只需要在键值对之前添加分号注释即可。
在一些应用程序中,#号也被用来表示注释,因此我们在INI文件中也可以使用#号来添加注释。
例如:3.使用空白行;这是注释;这是空白行,也是注释[key2]value2=abc```在上面的例子中,我们使用了两个空白行来表示注释。
总结在INI文件中添加注释的方法有很多种,包括使用分号、#号和空白行等方式,其中使用分号为最常用的方法。
当我们在编写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读写''函数:设置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。
VB6中一个非常好用的读写INI文件的模块
VB6中一个非常好用的读写INI文件的模块网上读写Ini文件的例子只有几篇相同的文章,而并不好用,奇怪的是各网站都是同样的例程,高手也就罢了,三下五除二就搞定,初学者会被搞得一头雾水,看着一个好好的模块就是不能用。
所以我整理了一下(最早是在腾讯答一个贴子时写的),这个也就是修改了一下,不是我自已的发明(至于这个代码起先不知是谁写的),不过非常的好用新建模块(建议不使用注册表)命名为rwini'ini文件在有回车换行符会出错,经过测试,汉字要小于86字节,英言文要小于143字节才能返回列表框。
(这是我以前的code,是记录列表框内容的)Option ExplicitPublic iniFileName As StringPublic 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 Long Public 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'****************************************获取Ini字符串值(Function)******************************************Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As StringDim ResultString As String * 144, Temp As IntegerDim s As String, i As IntegerTemp% = GetPrivateProfileString(SectionName, KeyWord, "", ResultString, 144, AppProFileName(iniFileName))'检索关键词的值If Temp% > 0 Then '关键词的值不为空s = ""For i = 1 To 144If Asc(Mid$(ResultString, i, 1)) = 0 ThenExit ForElses = s & Mid$(ResultString, i, 1)End IfNextElseTemp% = WritePrivateProfileString(SectionName, KeyWord, DefString, AppProFileName(iniFileName))'将缺省值写入INI文件s = DefStringEnd IfGetIniS = sEnd Function'**************************************获取Ini数值(Function)*************************************************** Function GetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefValue As Long) As IntegerDim d As Long, s As Stringd = DefValueGetIniN = GetPrivateProfileInt(SectionName, KeyWord, DefValue, AppProFileName(iniFileName))If d <> DefValue Thens = "" & dd = WritePrivateProfileString(SectionName, KeyWord, s, AppProFileName(iniFileName))End IfEnd Function'***************************************写入字符串值(Sub)**************************************************Sub SetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValStr As String)Dim res%res% = WritePrivateProfileString(SectionName, KeyWord, ValStr, AppProFileName(iniFileName))End Sub'****************************************写入数值(Sub)****************************************************** Sub SetIniN(ByVal SectionName As String, ByVal KeyWord As String, ByVal ValInt As Long)Dim res%, s$s$ = Str$(ValInt)res% = WritePrivateProfileString(SectionName, KeyWord, s$, AppProFileName(iniFileName))End Sub''这是我自已不知道怎样清除一个键(keyword) 时写的一个清除字符串值的过程,是有write函数写入一个空的值实现的,'Sub DelIniS(ByVal SectionName As String, ByVal KeyWord As String) 'Dim retval As Integer'retval = WritePrivateProfileString(SectionName, KeyWord, "", AppProFileName(iniFileName))'End Sub'其实0&表示前面的一个被清除,我多写了一个“”,如果是清除section 就少写一个Key多一个“”。
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)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。
VB读写Ini文件的模块
'****************************************获取Ini字符串值(Function)******************************************
Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As String
'用法: 首先 定义iniFileName="文件名" 不需要 加ini后缀
'这就是说,你可以赋值给iniFileName就可以写入记录,而且你可以随时写入不同的ini文件(不管这个文件是否已存在),通过修改这个公用变量。
'然后 DelInikey(ByVal SectionName As String, ByVal KeyWord As String) 清除键
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 Long
'DelIniSec(ByVal SectionName As String)) 清除部
VB怎样读写INI文件
INI 文件就是Windows 中常见的以 .ini 为扩展名的文件,其内部格式和各部分的名称如下:[Section1]Key1=Value1Key2=Value2Key3=Vlaue3[Section2]Key1=Value1Key2=Value5Key4=Value4Key5=......INI 文件中分若干个段(Section),每个段中有若干个键(Key) 值(Value) 对。
一个键值对保存一个信息;段则将属性类似的一些键值对组织在一起。
同一个段中不能出现两次以上同样的键,但不同的段中可以出现相同的键。
现在明白了吗?要是还不明白,就到Windows 里找两个INI 文件看看,文本编辑器就可以打开的。
明白了INI 文件就要开始学习怎样在VB 中读写INI 了。
VB 读写INI 文件,难吗?不难,因为Windows 已经为我们做好了一切,我们只需要调用它的API 函数就可以了。
为了读写INI 文件,我们可能用到以下API 函数:GetPrivateProfileIntGetPrivateProfileStringWritePrivateProfileString其中WritePrivateProfileString 是用来向INI 文件写信息的,而GetPrivateProfileInt 和GetPrivateProfileString 则是用来从INI 文件中读信息的,前者用于读取整型数据,后者则用于读取字符串型数据。
上述三个API 函数在VB 中的申明和说明如下:Private Declare Function GetPrivateProfileInt Lib "kernel32" _Alias "GetPrivateProfileIntA" ( _ ' 返回所读取的长整型值ByVal lpApplicationName As String, _ ' 要读取的段(Section) 名称ByVal lpKeyName As String, _ ' 要读取的的键(Key) 名称ByVal nDefault As Long, _ ' 指定默认值,如果读取时出错,则返回该值ByVal lpFileName As String) As Long ' 指定要读的INI 文件名Private Declare Function GetPrivateProfileString Lib "kernel32" _Alias "GetPrivateProfileStringA" ( _ ' 返回所读取的字符串值的真实长度ByVal lpApplicationName As String, _ ' 要读取的段(Section) 名称ByVal lpKeyName As Any, _ ' 要读取的的键(Key) 名称ByVal lpDefault As String, _ ' 指定默认值,如果读取时出错,则返回该值ByVal lpReturnedString As String, _ ' 指定接收返回值的字符串变量ByVal nSize As Long, _ ' 指定允许字符串值的最大长度ByVal lpFileName As String) As Long ' 指定要读的INI 文件名Private Declare Function WritePrivateProfileString Lib "kernel32" _Alias "WritePrivateProfileStringA" ( _ ' 如果成功返回非0 值,失败返回0 ByVal lpApplicationName As String, _ ' 要写入的段(Section) 名称ByVal lpKeyName As Any, _ ' 要写入的的键(Key) 名称ByVal lpString As Any, _ ' 要写入的值(Value),以字符串表示ByVal lpFileName As String) As Long ' 指定要写的INI 文件名我们的目的是要在VB 中写一个读写INI 文件的类,所以在VB 中新建一个工程,并添加一个类模块(Class Module),命令类为CIniFile,并且将上面的申明添加到类模块中。
迅速掌握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文件的相关操作就为大家介绍到这里。
ini文件读写解决方案
ini文件读写解决方案篇一:ini配置文件的读写ini配置文件的读写很多时候,我们的程序运行前需要用户做一些相关的设置,而且我们总是需要把一些配置信息保存下来,那天一直在思考怎么解决这个问题,突然就想到了在一些软件安装目录下的ini文件,然后经过查找资料发现其实ini文件既方便又实用。
下面对其使用进行总结:一、将信息从ini文件中读取到变量中首先,看一个ini文件的示例。
[连接参数]IpServer=DataBase=DB_TESTUserID=testPassword=123456;注释用英文分号以上就是一个简单的配置文档。
读取信息所用的函数为DWORD GetPrivateProfileString(LPCTSTR lpAppName, // section nameLPCTSTR lpKeyName, // key nameLPCTSTR lpDefault, // default stringLPTSTR lpReturnedString, // destination buffer DWORD nSize, // size of destination bufferLPCTSTR lpFileName // initialization file name );第一个参数为字段名,上例中的[连接参数];第二个参数键名,即变量名,上例中的IpServer、DataBase等等;第三个参数指,如果ini文件中没有前两个参数指定的字段名或键名,则将lpDefault的值赋给变量,也就是缺省值;第四个参数是接收ini文件中键名的值的CString对象,即目的缓存器;第五个参数是目的缓存器的大小;第六个参数是ini文件的完整路径。
如下:GetPrivateProfileString(L"连接参数",L"ipServer",L"", (MAX_PATH),MAX_PATH,curPath);在此额外说一点,一般来说ini文件和exe文件是放在一起的,所以这里涉及到当前路径的问题,该问题在《如何获取EXE可执行文件的所在路径》一文中讲得很清楚,而在此我用另一个全局函数也可以实现,假如我们的文件是配置.ini,则如下:CString curPath;//存储路径的CString对象AfxGetModuleFileName(AfxGetInstanceHandle(),curPath );curPath=(('\\'))+'\\';(L"配置.ini");或者还可以使lpFileName的值为:“.//配置.ini”来定位到当前目录(这种方法笔者还未测试)。
excel之vba读写ini文件
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文件一、实现方法如下: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文件方法(经典详细教程)
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。
VB6.0实现读写配置文件(.ini文件)
VB6.0实现读写配置文件(*.ini文件)'声明: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 LongDeclare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongDeclare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long'读写例子:Sub RWConfigFile()'读字符串Dim lng As LongDim retstr As Stringretstr = String(260, 0)lng = GetPrivateProfileString("config", "para1", "", retstr, 256, "c:\config.ini")retstr = Replace(retstr, Chr(0), "")'读整数lng = GetPrivateProfileInt("config", "para2", 0, "c:\config.ini") '写字符串lng = WritePrivateProfileString("config", "para3", "写文件测试", "c:\config.ini")End Subconfig.ini配置文件格式:[config]para1=你好abc111para2=123para3=写文件测试特别提示:声明在模块内,配置文件中值两边的空格会被忽略掉。
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”来定位到当前目录(这种方法笔者还未测试)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
调用例子:SaveINI "main","FontColor","801085","D:\"
Filename ............INI的绝对路径
怎么,是不是现在可以用INI文件保存你的设置啦。
Declare Function SaveINI Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lplFileName As String) As Long
在VB中INI文件的读写(非常方便)
很多时候我们编一个程序不一定要用到注册表来保存设置(如果说一个程序没有设置就不算好程序了)。INI是一个很好的选择。有人说,Savesetting是一个不错的选择,但是我了解到,不能永久的保存(起码在系统重装的时候会丢失)。于是Ini作为一个Windows配置文件,可以放在本地路径,优势就呈现出来。下面讨论一下这个问题。