vb連接lst檔案,文本框1和2輸入資料,點擊添加 顯示在下方list1和combo1里,點擊保存添加資料在檔案里。




下次運行程式時,程式自動讀取檔案內容,結果下拉框里的是全部的資料了

我想要的是下拉框只顯示前面我輸入的格式名abc,并且如何讓下拉框選中的格式名跟其碼率相對應(比如選了格式abc,如何讓它對應123?因為下方還要計算)
求大佬
uj5u.com熱心網友回復:
就算用文本檔案保存這些“記錄資訊”,你好歹也得保證“規范格式”吧!!!看看你的“記錄”,有些有“格式名”和“碼率”這兩個“關鍵字”,
(也不好安其稱謂,暫且叫做“關鍵字”吧 ^_^)
有一些卻只有個“格式名稱”而沒有任何關鍵字、也沒有碼率資訊(當然這也不算什么問題)。
你覺得這樣記錄的資訊,在記取檔案資料時,能夠便于處理嗎!

本來是個非常簡單的事,卻因為你記得的“亂”而變得難以處理了。
稍說“具體”點,就是:
要么你把所有的記錄項(就是“每行文本”),統一的分別冠以“格式名”和“碼率”;
要么就都不要這“關鍵字”,把格式名和碼率資訊用一個“特定字符”來分隔開,
比如用西文的分號(假設格式名中不會出現“分號”字符)、逗號(假設……同前)等。
格式名中會出現的字符,這種“不冠關鍵字”的情況下就不能作為“分隔符”了,
比如西文的空格,你的格式名“Half D1”中就有它,顯然不能用它做分隔符了。
在“格式規范”后,解決你的“問題”就簡單了;
并且“只有格式名、沒有碼率”的記錄,也不是個“問題”了。
uj5u.com熱心網友回復:
這點是我疏忽了……可以把格式名和碼率關鍵字去掉,然后規范格式。特定的符號就是用空格分開,輸入時可以規定不能有空格。這樣格式就規范了。還請您指教一下
uj5u.com熱心網友回復:
如果你的 List.lst 是“用空格分隔”的,參考一下這段代碼。如果有問題再說吧…………
Option Explicit
Private arrData() As String
Private mlMaxSN As Long
Private 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 Sub
Private 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 Sub
Private Sub Form_Load()
' 先做你的其它處理…………
Call LoadList
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/40419.html
標籤:資源
