如何将下列vb6几行代码转化为vs.net2005?(且能调试成功)
如何将下面vb6代码转化为vs.net2005,且能调试成功啊?
Private Sub Command1_Click()
Dim i As Long
Open "d:\config.ini " For Output As #1
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i)
Next
For i = 0 To Combo1.ListCount - 1
Print #1, Combo1.List(i)
Next
Close #1
End Sub
Private Sub Command2_Click()
List1.AddItem (Text1.Text)
Combo1.AddItem (Text1.Text)
End Sub
Private Sub Form_Load()
Open "d:\config.ini " For Input As #1
strtmp = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
For i = 0 To UBound(strtmp) - 1
List1.AddItem strtmp(i)
Combo1.AddItem strtmp(i)
Print strtmp(i)
Next
Print List1.ListCount
Print Combo1.ListCount
Close #1
End Sub
[解决办法]
晕倒,最好调用FCL的类而不是VB的旧函数~
[解决办法]
有自动的工具啊,那就应该好办多了.
[解决办法]
StrConv(InputB(LOF(1), 1), vbUnicode)
这句是不可以直接转换的
可以用System.Text.Encoding
[解决办法]
我认为,简单的方法是把数据内容的个数也写入文件里,这样比较方便
另一种方式是加入一个结束标记(不能和使用的数据存在冲突)
数字的这么改一下
- VB.NET code
Private Sub Command1_Click() dim sw as new streamwriter("d:\config.ini") sw.writeline(list1.item.count) '写入List1 的个数 sw.WriteLine(combo1.count) '写入Combo 的个数 for i as integer =0 to list1.count -1 sw.writeline(list1.item(i)) next for i as integer =0 to combo1.count -1 sw.writeline(combo1.item(i)) next sw.close End Sub Private Sub Form_Load() dim str() as string =file.readalllines("d:\config.ini") dim listcount as integer =integer.Parse( str(0)) dim ComboCount as integer =integer.Parse(str(1)) 'integer.Parse 这个是类型转换,从 String 到Integer,如果无法转换回抛出异常 dim i as integer =2 for i to listcount -1 list1.add(str(i)) next for i to str.Length -1 combo1.add(str(i)) next 'if str.Length <> listcount + ComboCount +2 then ... '你可以加上这个, <> 是不等 的意思, 用来判定 加载的数据个数与记录的不同,文件有可能被修改等 '另外,上面2个For 循环, 如果 数据项目变少了, 那么,会抛出索引越界的异常,后期注意以下 End Sub