注册 登录
编程论坛 VB6论坛

vb6 listbox从ini文件给列表赋值问题

Ez330阿牛 发布于 2014-04-01 18:24, 529 次点击
'Country  是ocx界面初始化的时候记录的listbox项的数量,是用来如果读取ini出错的时候查看是否有少一项,如果少就用别的按钮把列表框还原,这个代码有需要我再贴出来      
List_待选.Clear
           For i = 0 To Country Step 1
               Lista = ReadInI("List", i, BasePath & "Uservar(List).ini")
               Selected = ReadInI("List", "Selected" & i, BasePath & "Uservar(List).ini")
               Debug.Print Lista & "Selected = " & Selected, i
               List_待选.AddItem Lista
               List_待选.Selected(i) = Selected
 
               '                If InStr(Arr(i), "<>") > 0 Then
               '                    List_待选.AddItem Split(Arr(i), "<>")(0), i
               '                    Debug.Print List_待选.List(i)
               '                    'Debug.Print i, List_待选.List(i), Split(Arr(i), "<>")(0), Split(Arr(i), "<>")(1)
               '                    If Split(Arr(i), "<>")(1) = "True" And List_待选.List(i) <> "" Then 'And List_待选.List(i) = Split(Arr(i), "<>")(0)
               '                        List_待选.Selected(i) = True
               '                    End If
               '                End If
               DoEvents
           Next
我从保存好的配置文件里给ListBox 我list 项重新赋值,怎么配置文件里明明就有,怎么读取出来就是会少一个
研究了快一个月了,网上找了很久,有一个是倒着读取但是结果然还是一样,都没有具体的解决办法,我这个是在ocx界面使用的,调试读取保存好的总是报错,加个忽略错误的,是不报错了,但是总少了一项
幸运大转盘那项总是不能添加到列表框,ini读取出来的是有,以下是ini文件内容
[List]
0=签到
1=幸运大转盘
2=名将试炼
3=家族跑商
4=1-30主线
5=卡牌洗边
6=生产生活
7=自动开箱子
8=寻梦任务
9=收邮件
10=狐狸嘉年华
11=刷怪
12=草船借箭
13=袁军巡逻兵
14=领取补偿
15=喊话
Selected0=True
Selected1=True
Selected2=True
Selected3=False
Selected4=False
Selected5=False
Selected6=False
Selected7=False
Selected8=False
Selected9=False
Selected10=False
Selected11=False
Selected12=False
Selected13=False
Selected14=False
Selected15=False

[ 本帖最后由 Ez330阿牛 于 2014-4-2 06:47 编辑 ]
3 回复
#2
风吹过b2014-04-02 11:07
只有本站会员才能查看附件,请 登录


测试了代码,无问题。
检查 Country 值是否正确,是否为 15 。

程序代码:
Option Explicit
Dim basepath As String

Private Sub Form_Load()

basepath = App.Path
If Right(basepath, 1) <> "\" Then basepath = basepath & "\"
Dim i As Long
Dim country As Long
country = 15
Dim lista  As String
Dim Selected As Boolean


List_待选.Clear
           For i = 0 To country Step 1
               lista = ReadInI("List", i, basepath & "Uservar(List).ini")
               Selected = ReadInI("List", "Selected" & i, basepath & "Uservar(List).ini")
               Debug.Print lista & "Selected = " & Selected, i
               List_待选.AddItem lista
               List_待选.Selected(i) = Selected

               '                If InStr(Arr(i), "<>") > 0 Then
               '                    List_待选.AddItem Split(Arr(i), "<>")(0), i
               '                    Debug.Print List_待选.List(i)
               '                    'Debug.Print i, List_待选.List(i), Split(Arr(i), "<>")(0), Split(Arr(i), "<>")(1)
               '                    If Split(Arr(i), "<>")(1) = "True" And List_待选.List(i) <> "" Then 'And List_待选.List(i) = Split(Arr(i), "<>")(0)
               '                        List_待选.Selected(i) = True
               '                    End If
               '                End If
               DoEvents
           Next
           
End Sub
#3
Ez330阿牛2014-04-02 19:00
回复 2楼 风吹过b
有输出过,确实是15,所以才头痛怎么会出错呢
只有本站会员才能查看附件,请 登录


[ 本帖最后由 Ez330阿牛 于 2014-4-2 19:13 编辑 ]
#4
bczgvip2014-04-03 00:09
[Selected]
0=True
这样不好过么?
1