VB的Listview保存读取

保存为当前路径ini文件,看好了是Listview控件,不会装懂和骗分的gun远点,直接贴源码,能用300分... 保存为当前路径ini文件,看好了是Listview控件,不会装懂和骗分的gun远点,直接贴源码,能用300分 展开
 我来答
匿名用户
2013-11-16
展开全部
完整代码注:Listview定义了4个列,自己需要几列改下就好Option Explicit
'读写INI文件
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 lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPrivate Sub Form_Load()
Randomize
End SubPrivate Sub 随机值_Click()
Dim i As Integer, j As Integer, lv As ListItem
ListView1.ListItems.Clear
For i = 0 To 14
Set lv = ListView1.ListItems.Add(, , i + 1)
For j = 0 To 2
lv.ListSubItems.Add , , CInt(Rnd * 30)
Next j
Next i
End SubPrivate Sub 保存_Click()
Dim si As Integer, sj As Integer, tmpstr As String
If ListView1.ListItems.Count = 0 Then MsgBox "没有可保存的内容", vbInformation, "提示": Exit Sub
tmpstr = ListView1.ListItems.Count
WritePrivateProfileString "统计项", "总行数", tmpstr, App.Path & "\ABC.ini"
tmpstr = ListView1.ListItems(1).ListSubItems.Count
WritePrivateProfileString "统计项", "总列数", tmpstr, App.Path & "\ABC.ini"
With ListView1.ListItems
For si = 1 To .Count
WritePrivateProfileString "第" & si & "行", "第1列", .Item(si).Text, App.Path & "\ABC.ini"
For sj = 1 To .Item(si).ListSubItems.Count
WritePrivateProfileString "第" & si & "行", "第" & sj + 1 & "列", .Item(si).SubItems(sj), App.Path & "\ABC.ini"
Next sj
Next si
End With
MsgBox "保存成功!", vbInformation, "提示"
End SubPrivate Sub 读取_Click()
Dim sr As Integer, sc As Integer, li As Integer, lj As Integer, tmptxt As String, lvs As ListItem
tmptxt = Space$(100)
GetPrivateProfileString "统计项", "总行数", "0", tmptxt, 100, App.Path & "\ABC.ini"
sr = CInt(tmptxt) '总行数
tmptxt = Space$(100)
GetPrivateProfileString "统计项", "总行数", "0", tmptxt, 100, App.Path & "\ABC.ini"
sc = CInt(tmptxt)
If sr = 0 Then
MsgBox "总行数为零哦"
Exit Sub
Else
ListView1.ListItems.Clear
End If
For li = 1 To sr
For lj = 1 To sc '这里你的列表
tmptxt = Space$(100)
GetPrivateProfileString "第" & li & "行", "第" & lj & "列", "", tmptxt, 100, App.Path & "\ABC.ini"
If lj = 1 Then
Set lvs = ListView1.ListItems.Add(, , tmptxt)
Else
lvs.ListSubItems.Add , , tmptxt
End If
Next lj
Next li
End Sub
webyouth
2014-02-16 · TA获得超过426个赞
知道小有建树答主
回答量:1481
采纳率:33%
帮助的人:719万
展开全部
看了楼上那代码。发现不能用。在读取时总提示行数是0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式