CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

如何在vb中编写读取ini文件的代码???

楼主myheart8541_cn(i++)2002-04-15 10:40:27 在 VB / 基础类 提问

同上。。。 问题点数:40、回复次数:4Top

1 楼gump2000(阿甘)回复于 2002-04-15 10:46:31 得分 20

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  
  Private   Declare   Function   WritePrivateProfileString   Lib   "Kernel32"   Alias   "WritePrivateProfileStringA"   (ByVal   AppName   As   String,   ByVal   KeyName   As   String,   ByVal   keydefault   As   String,   ByVal   Filename   As   String)   As   Long  
   
  Private   sDefInitFileName   As   String  
   
  '读取Ini文件  
  Public   Function   GetInitEntry(ByVal   sSection   As   String,   ByVal   sKeyName   As   String,   Optional   ByVal   sDefault   As   String   =   "",   Optional   ByVal   sInitFileName   As   String   =   "")   As   String  
   
  Dim   sBuffer   As   String  
  Dim   sInitFile   As   String  
   
          If   Len(sInitFileName)   =   0   Then  
                  If   Len(sDefInitFileName)   =   0   Then  
                          sDefInitFileName   =   App.Path  
                          If   Right$(sDefInitFileName,   1)   <>   "\"   Then  
                                  sDefInitFileName   =   sDefInitFileName   &   "\"  
                          End   If  
                          sDefInitFileName   =   sDefInitFileName   &   App.EXEName   &   ".ini"  
                  End   If  
                  sInitFile   =   sDefInitFileName  
          Else  
                  sInitFile   =   sInitFileName  
          End   If  
           
          sBuffer   =   String$(2048,   "   ")  
          GetInitEntry   =   Left$(sBuffer,   GetPrivateProfileString(sSection,   ByVal   sKeyName,   sDefault,   sBuffer,   Len(sBuffer),   sInitFile))  
   
  End   Function  
   
  '写Ini文件  
  Public   Function   SetInitEntry(ByVal   sSection   As   String,   Optional   ByVal   sKeyName   As   String,   Optional   ByVal   sValue   As   String,   Optional   ByVal   sInitFileName   As   String   =   "")   As   Long  
   
  Dim   sInitFile   As   String  
   
          If   Len(sInitFileName)   =   0   Then  
                  If   Len(sDefInitFileName)   =   0   Then  
                          sDefInitFileName   =   App.Path  
                          If   Right$(sDefInitFileName,   1)   <>   "\"   Then  
                                  sDefInitFileName   =   sDefInitFileName   &   "\"  
                          End   If  
                          sDefInitFileName   =   sDefInitFileName   &   App.EXEName   &   ".ini"  
                  End   If  
                  sInitFile   =   sDefInitFileName  
          Else  
                  sInitFile   =   sInitFileName  
          End   If  
           
          If   Len(sKeyName)   >   0   And   Len(sValue)   >   0   Then  
                  SetInitEntry   =   WritePrivateProfileString(sSection,   ByVal   sKeyName,   ByVal   sValue,   sInitFile)  
          ElseIf   Len(sKeyName)   >   0   Then  
                  SetInitEntry   =   WritePrivateProfileString(sSection,   ByVal   sKeyName,   vbNullString,   sInitFile)  
          Else  
                  SetInitEntry   =   WritePrivateProfileString(sSection,   vbNullString,   vbNullString,   sInitFile)  
          End   If  
   
  End   Function  
  Top

2 楼rivershan(阿门)回复于 2002-04-15 10:56:39 得分 10

需要模块~  
  Declare   Function   WritePrivateProfileString   Lib   "kernel32"   Alias   "WritePrivateProfileStringA"   (ByVal   lpApplicationname   As   String,   ByVal   lpKeyName   As   Any,   ByVal   lsString   As   Any,   ByVal   lplFilename   As   String)   As   Long  
  Declare   Function   GetPrivateProfileInt   Lib   "kernel32"   Alias   "GetPriviteProfileIntA"   (ByVal   lpApplicationname   As   String,   ByVal   lpKeyName   As   String,   ByVal   nDefault   As   Long,   ByVal   lpFileName   As   String)   As   Long  
  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   Long  
  Global   file  
  Global   appname  
  Global   Keyname  
  Global   value  
   
  Public   Sub   writeini()  
  Dim   lpAppName   As   String,   lpFileName   As   String,   lpKeyName   As   String,   lpString   As   String  
  Dim   U   As   Long  
  lpAppName   =   appname  
  lpKeyName   =   Keyname  
  lpString   =   value  
  lpFileName   =   file  
  U   =   WritePrivateProfileString(lpAppName,   lpKeyName,   lpString,   lpFileName)  
  If   U   =   0   Then  
  Beep  
  End   If  
  End   Sub  
   
  Public   Sub   readini()  
  Dim   X   As   Long  
  Dim   Temp   As   String   *   50  
  Dim   lpAppName   As   String,   lpKeyName   As   String,   lpDefault   As   String,   lpFileName   As   String  
  lpAppName   =   appname  
  lpKeyName   =   Keyname  
  lpDefault   =   no  
  lpFileName   =   file  
  X   =   GetPrivateProfileString(lpAppName,   lpKeyName,   lpDefault,   Temp,   Len(Temp),   lpFileName)  
   
  If   X   =   0   Then  
          Beep  
  Else  
          result   =   Trim(Temp)  
  End   If  
  End   Sub  
  Top

3 楼shaoqiang(小邵)回复于 2002-04-15 11:01:59 得分 10

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   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  
   
  Public   Function   ReadINI(strsection   As   String,   strkey   As   String,   strfullpath   As   String)   As   String  
  '''''''''''''''''''''''''''''''''''''''''''''''''''''''  
  'read   ini                                                                                           '  
  'x   =   readini("Example   INI",   "Example",   "C:\Example.ini")'  
  'MsgBox   X                                                                                           '  
  '''''''''''''''''''''''''''''''''''''''''''''''''''''''  
        Dim   strbuffer   As   String  
        Let   strbuffer$   =   String$(750,   Chr$(0&))  
        Let   ReadINI$   =   Left$(strbuffer$,   GetPrivateProfileString(strsection$,   ByVal   LCase$(strkey$),   "",   strbuffer,   Len(strbuffer),   strfullpath$))  
  End   Function  
   
  Public   Sub   WriteINI(strsection   As   String,   strkey   As   String,   strkeyvalue   As   String,   strfullpath   As   String)  
  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  
  'write   ini                                                                                                               '  
  'Call   writeini("Example   INI",   "Example",   "Yes",   "C:\Example.ini")'  
  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''  
          Call   WritePrivateProfileString(strsection$,   UCase$(strkey$),   strkeyvalue$,   strfullpath$)  
  End   Sub  
  Top

4 楼Chimae(David)回复于 2002-04-15 11:22:54 得分 0

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  
   
  Dim   lngIni   As   Long  
  lngIni   =   GetPrivateProfileString(strAppName,   strKeyName,   "",   strReturnValue,   Len(strReturnValue),   strIniPath)  
  If   lngIni   <>   0   Then  
      If   Len(strReturnValue)   <>   0   Then  
          strTemp   =   Left(strReturnValue,   lngIni)  
      End   If  
  End   If  
   
  strReturnValue是用来返回值得,最好初始化时长一点;这是我自己的是用体会!Top

相关问题

  • 怎么用vb读取,编写,修改.ini文件,急用
  • 在VB中如何读取Access2000编写的mdb数据库?
  • vb如何写入、读取INI文件
  • 如何通过vb读取ini文件
  • 如何编写一个简单的读取*.ini文件的程序??
  • vb中用什么命令读取ini文件?
  • 用VB如何保存和读取ini文件
  • 用VB如何保存和读取ini文件
  • 请教VB读取INI出现的问题(在线等,急)
  • 用VB编写在IE中使用ActiveX 控件,VB中怎么读取值<param name=".." value="..">的属性?

关键词

  • 文件
  • sdefinitfilename
  • sinitfile
  • sinitfilename
  • byval
  • skeyname
  • ssection
  • setinitentry
  • sbuffer
  • writeprivateprofilestring

得分解答快速导航

  • 帖主:myheart8541_cn
  • gump2000
  • rivershan
  • shaoqiang

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo