vb连接lst文件,文本框1和2输入数据,点击添加 显示在下方list1和combo1里,点击保存添加数据在文件里。下次运行程序时,程序自动读取文件内容,结果下拉框里的是全部的数据了
我想要的是下拉框只显示前面我输入的格式名abc,并且如何让下拉框选中的格式名跟其码率相对应(比如选了格式abc,如何让它对应123?因为下方还要计算)
求大佬
我想要的是下拉框只显示前面我输入的格式名abc,并且如何让下拉框选中的格式名跟其码率相对应(比如选了格式abc,如何让它对应123?因为下方还要计算)
求大佬
(也不好安其称谓,暂且叫做“关键字”吧 ^_^)
有一些却只有个“格式名称”而没有任何关键字、也没有码率信息(当然这也不算什么问题)。你觉得这样记录的信息,在记取文件数据时,能够便于处理吗!本来是个非常简单的事,却因为你记得的“乱”而变得难以处理了。
稍说“具体”点,就是:
要么你把所有的记录项(就是“每行文本”),统一的分别冠以“格式名”和“码率”;
要么就都不要这“关键字”,把格式名和码率信息用一个“特定字符”来分隔开,
比如用西文的分号(假设格式名中不会出现“分号”字符)、逗号(假设……同前)等。
格式名中会出现的字符,这种“不冠关键字”的情况下就不能作为“分隔符”了,
比如西文的空格,你的格式名“Half D1”中就有它,显然不能用它做分隔符了。
在“格式规范”后,解决你的“问题”就简单了;
并且“只有格式名、没有码率”的记录,也不是个“问题”了。
如果有问题再说吧…………Option ExplicitPrivate arrData() As String
Private mlMaxSN As LongPrivate Sub LoadList()
Dim strTemp As String
Dim i&, k As Long strTemp = App.Path & "\List.lst"
Open strTemp For Input As #1
k = LOF(1)
strTemp = StrConv(InputB$(k, #1), vbUnicode)
Close
arrData = Split(strTemp, vbCrLf)
For i = 0& To UBound(arrData())
strTemp = arrData(i)
k = InStr(strTemp, " ")
If (0 = k) Then Exit For
Me.Combo1.AddItem Left$(strTemp, k - 1)
arrData(i) = Mid$(strTemp, k + 1)
Next
mlMaxSN = i - 1
End SubPrivate Sub Combo1_Click()
Dim i As Long i = Combo1.ListIndex - 5 ' Combo1中的“标准格式”有5项
If (0 > i) Then
Text2.Text = ""
Else
If (i > mlMaxSN) Then
Text2.Text = ""
Else
Text2.Text = arrData(i)
End If
End If
End SubPrivate Sub Form_Load()
' 先做你的其它处理…………
Call LoadList
End Sub