vb 中关于GetPrivateProfileSection用法

我用这个API为什么不能取得ini文件中的某一节点下所有的键值啊,只能返回第一条记录,唉,有没有高手能指点一下,我的源码是这样的,:'INmodelPublicDecla... 我用这个API为什么不能取得ini文件中的某一节点下所有的键值啊,只能返回第一条记录,唉,有没有高手能指点一下,我的源码是这样的,
:'IN model
Public Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Sub Command1_Click()
Dim ret As String * 32767
Dim x
x = GetPrivateProfileSection("请填入你想绑定的主机IP&MAC", ret, 255, App.Path & "\\config.ini")
MsgBox x
Text2.Text = ret
End Sub
INI文件中是这样的:
[请填入你想绑定的主机IP&MAC]
IP&MAC=192.168.1.6 00:EE:de:cd:e4:6e
IP&MAC=192.168.1.7 00:EE:de:cd:e4:6e
IP&MAC=192.168.1.8 00:EE:de:cd:e4:6e
IP&MAC=192.168.1.9 00:EE:de:cd:e4:6e
IP&MAC=192.168.1.10 00:EE:de:cd:e4:6e
IP&MAC=192.168.1.50 00:EE:de:cd:e4:6e
IP&MAC=192.168.1.55 00:EE:de:cd:e4:6e
总之只能读出第一条记录,我想做一个ARP绑定工具,而INI文件中的MAC和IP地址是变量,可任意填写的,所以不能用GetPrivateProfileString
展开
 我来答
timothyhpotter
2007-08-23 · TA获得超过483个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:502万
展开全部
这时返回值 ret 的格式为:

第一个值 Chr(0) 第二个值 Chr(0) 第……个值 Chr(0) 第N个值 Chr(0) Chr(0)

Chr(0)即为 C 中的 Null。会截断到Text2的输出。

把Text2设为多行,ret 替换为 Text2.Text = Replace(Left(ret, InStr(ret, Chr(0) & Chr(0))), Chr(0), vbCrLf)
就可以在Text2里分行显示所有值了。


Private Sub Command1_Click()
Dim ret As String * 32767
Dim x
x = GetPrivateProfileSection("请填入你想绑定的主机IP&MAC", ret, 255, App.Path & "\\config.ini")
MsgBox x
Text2.Text = Text2.Text = Replace(Left(ret, InStr(ret, Chr(0) & Chr(0))), Chr(0), vbCrLf)
End Sub
悉城司徒立果
2019-06-06 · TA获得超过1102个赞
知道小有建树答主
回答量:1373
采纳率:100%
帮助的人:5.9万
展开全部
print方法可以在窗体上显示文本字符串和表达式的值,并可在其它图形对象或打印机上输出信息。
1、语法说明
在vb中,print方法是用来输出信息的专用过程,显示的文本是作为图像来处理的,因此,print方法显示的文本字符串也往往作为图形文本。visual
basic
允许在窗体、图形框和打印机用print方法显示文本字符串。
语法格式:
[对象]·print
[spc(n)|tab(n)
expression
charpos]
说明:
——指定文本显示的地方,可取的值:窗体名称、图片框名称或printer(打印机),也可以是立即窗口(debug)。如果省略“对象”,则指在当前窗体上输出。
——可选的,用来在输出中插入空白字符,这里n为要插入的空白字符数。
——可选的,用来将插入点定位在绝对列号上,这里n为列号。
——可选的,表示要打印的数值表达式或字符串表达式,如果省略,则打印一空行。
——可选的,指定下一个字符的插入点,可以是分号、逗号,也可以省略。
使用分号(;)则直接将插入点定位在上一个被显示字符之后;
使用逗号(,)则将下一个输出字符的插入点定位在制表符上;
如果省略charpos,则在下一行打印下一字符。
例如,在不同的对象上分别打印消息“this
is
a
testing
message”。
在名称为“myform”的窗体对象上显示;
myform.
print
“this
is
a
testing
message.”
★在名称为“picminimsg”的图片框对象上显示;
picminimsg.
print
“this
is
a
testing
message.”
★在当前窗体上显示;
print
“this
is
a
testing
message.”
‘省略对象
★在打印机上显示。
printer.
print
“this
is
a
testingmessage.”
2、几种输出方法
对于boolean数据,输出结果是:true或者false;
使用系统能识别的标准短日期格式书写date数据。当日期或时间部件丢失或为零时,只书写已提供的部件;
如果expressionlist(表达式)为空,则无内容书写。但如果expressionlist值为null,则输出null。在输出null关键字时,要把关键字正确翻译出来。
要把错误数据作为error
errorcode输出。在输出error关键字时,要把关键字正确翻译出来。
如果在具有缺省显示空间的模块之外使用此方法,则需要对象。否则将导致错误。但,如果在窗体模块上进行调用,则会在窗体上显示。
注意:
print方法只能用于可显示文本的对象。
因为print方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。如像w这样的宽字母占据的宽度超过一固定的列宽,而像i这样的窄字母占据的宽度则较小。所以,考虑到要使用比平均字符更宽的空间,表列一定要留有足够的余地。也可以使用固定间距的字体来确保每一字符均只占一列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式