| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 966 人关注过本帖, 1 人收藏
标题:请教读取ini文件的api函数的使用问题
只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏(1)
已结贴  问题点数:20 回复次数:3 
请教读取ini文件的api函数的使用问题
请教读取ini文件的api函数的使用问题
以下是一个读取ini文件数据的函数,有几个问题请教一下
1.我的变量 strtmp 应该预留多少的字符呀,是应该全部填充空格呀,还是用 ascii码 0 来填充呢?,
关键是预留多少个字符,有没有规定,还是随便设?
2.如果用事先填充的是 null,即ascii码的0,是不是就不需要截尾了.
3.如果进行截尾,最好的实现方法是什么呢?以下用循环的方法行吗?
    'ascii码为0对应的为空字符
'    For i = 1 To Len(strtmp)
'        If Asc(Mid(strtmp, i, 1)) <> 0 Then
'            strTmp2 = strTmp2 + Mid(strtmp, i, 1)
'        End If
'    Next i

因为这个函数也是网上找的,所以一些地方不明白.当然了,这个函数需要事先声明API函数,我这里省略了.
Public Function GetIniKey(strSection As String, strKey As String) As String

    On Error GoTo errhandle
    Dim strtmp  As String
    Dim lngRet  As String
    Dim i      As Integer
    Dim strTmp2 As String
   
    '先将strtmp定义成1024个字符的长度,保证一定能装下返回的字串
    'strtmp = String$(1024, Chr(32))
    strtmp = String$(1024, 0)

    lngRet = GetPrivateProfileString(strSection, strKey, "", strtmp, Len(strtmp), strINI)
   
    'strtmp现在已经是返回的字串了,所以要进行截尾处理
    strtmp = Trim(strtmp)
    'strTmp2 = ""
   
    'ascii码为0对应的为空字符
'    For i = 1 To Len(strtmp)
'        If Asc(Mid(strtmp, i, 1)) <> 0 Then
'            strTmp2 = strTmp2 + Mid(strtmp, i, 1)
'        End If
'    Next i
   
    GetIniKey = strtmp
    GetIniKey = strtmp2
    Exit Function
errhandle:
    GetIniKey = ""

End Function
搜索更多相关主题的帖子: api ini 函数 文件 
2009-07-14 13:44
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:7 
Public Function GetIniKey(ByVal strSection As String, strKey As String) As String
    Dim strTmp As String
    Dim lngRet As String
    Dim i As Integer
    Dim strTmp2 As String
   
    strTmp = String$(1024, Chr(32))
    lngRet = GetPrivateProfileString(strSection, strKey, "", strTmp, Len(strTmp), strINI)
    strTmp = Trim(strTmp)
    strTmp2 = ""
    For i = 1 To Len(strTmp)
        If Asc(Mid(strTmp, i, 1)) <> 0 Then
            strTmp2 = strTmp2 + Mid(strTmp, i, 1)
        End If
    Next i
    strTmp = strTmp2
   
    GetIniKey = strTmp
End Function
2009-07-14 14:08
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:8 
'读写INI文件函数
Option Explicit

'写
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 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
   
'保存到INI文件
Public Function Wini(ByVal 段 As String, ByVal 键 As String, ByVal 值 As String, IniFile As String) As Boolean
Dim X As Long, buff As String * 1024, i As Long
buff = 值 & Chr(0)
X = WritePrivateProfileString(段, 键, buff, IniFile)
Wini = X
End Function

'从INI文件中读取
Public Function Rini(ByVal 段 As String, ByVal 键 As String, IniFile As String) As String
Dim X As Long, buff As String * 1024, i As Long
X = GetPrivateProfileString(段, 键, "", buff, 1024, IniFile)
i = InStr(1, buff, Chr(0))
Rini = Trim(Left(buff, i - 1))
End Function

授人于鱼,不如授人于渔
早已停用QQ了
2009-07-14 14:51
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:5 
2009-07-14 23:23
快速回复:请教读取ini文件的api函数的使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.064451 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved