|
<p><font face="Verdana">大家看看,两个从ini取信息的函数,哪个好呀? <br/>以下两个函数都是网上找的,第一个说不好来处,第二个是老马的代码(从他的论坛下的) </font></p>
<p><font face="Verdana">我想问问哪种更好些,第一种代码少,简洁很多, <br/>第二个代码,代码量大,主要是因为多了一个循环截尾的操作。因为我现在用的是第一种代码,可是看到很多网友都在用第二种代码,我不知道为什么,为何在用循环呢? <br/>是不是第一种操作的字符截尾操作有问题呀? </font></p>
<p><font face="Verdana">VB code</font></p>
<p><font face="Verdana">Public Function GetIniKey(strSection As String, strKey As String) As String<br/> On Error GoTo errhandle<br/> Dim strResult As String * 255 '固定255长度<br/> Dim lngRet As Long<br/> <br/> lngRet = GetPrivateProfileString(strSection, strKey, "", strResult, Len(strResult), strINI)<br/> GetIniKey = Left(strResult, InStr(strResult, Chr(0)) - 1)</font></p>
<p><font face="Verdana"> Exit Function<br/>errhandle:<br/> GetIniKey = ""<br/>End Function</font></p>
<p><font face="Verdana">Function GetIniS(ByVal SectionName As String, ByVal KeyWord As String, ByVal DefString As String) As String<br/> Dim ResultString As String * 144, Temp As Integer<br/> Dim S As String, I As Integer</font></p>
<p><font face="Verdana"> Temp% = GetPrivateProfileString(SectionName, KeyWord, "", ResultString, 144, IniFileName)</font></p>
<p><font face="Verdana"> If Temp% > 0 Then<br/> S = ""<br/> For I = 1 To 144<br/> If Asc(Mid$(ResultString, I, 1)) = 0 Then<br/> Exit For<br/> Else<br/> S = S & Mid$(ResultString, I, 1)<br/> End If<br/> Next<br/> Else<br/> Temp% = WritePrivateProfileString(SectionName, KeyWord, DefString, IniFileName)<br/> S = DefString<br/> End If<br/> GetIniS = S<br/>End Function<br/></font></p> |
|