要求1:文本檔案型別不是txt,是mca,但是可以用記事本打開,需要提取里面的資料生成矩陣
要求2:提取文本檔案時候,能夠自己選擇文本檔案所在的位置匯入,而不是直接編程的時候寫地址提取
要求3:保存資料,能自己自由選擇保存資料文本所在的地址
難點1:主要是文本檔案里面還有一些字符,需要跳過幾行字符開始提取資料
難點2:希望能夠自由的選擇匯入和保存的地址!而不是直接輸入地址


這是我撰寫的代碼,但是不知道為啥,總是提醒 編譯錯誤
Option Explicit
Private Sub GetData(ByVal strFile As String)
Dim intFNo As Long
Dim strD As String
Dim isData As Boolen
Dim lngIndex As Long
strData = Space(100000) '提前申請記憶體,要大于最大的資料量的2倍,因為資料后在有加分號(;)
intFNo = FreeFile
Open strFile For Input As #intFNo
lngIndex = 1
Do While Not EOF(intFNo)
Line Input #intFNo, strD
If isData Then
If strD <> "<<END>>" Then
Mid(strData, lngIndex, Len(Trim(strD)) + 1) = Trim(strD) & ";" '提取資料
'資料格式為:data;data;data;data;
'如果要轉換成資料:bytd=split(strdata,";")
lngIndex = lngIndex + Len(Trim(strD)) + 1
Else
MsgBox "資料提取完成,請保存"
Exit Do
End If
Else
If strD = "<<DATA>>" Then
isData = True
End If
End If
Loop
Close #intFNo
End Sub
Private strData As String '提取的資料
Private Sub Command1_Click() '選擇檔案
On Error GoTo err
CommonDialog1.FileName = ""
CommonDialog1.Filter = "*.mca|*.mca|*.txt|*.*"
CommonDialog1.CancelError = True
CommonDialog1.ShowOpen '打開檔案選擇對話框
If CommonDialog1.FileName <> "" Then
Text1.Text = CommonDialog1.FileName '選擇的檔案名
GetData (Text1.Text) '提取資料
End If
err:
End Sub
Private Sub Command2_Click()
On Error GoTo err
CommonDialog1.FileName = ""
CommonDialog1.Filter = "*.mca|*.mca|*.txt|*.*"
CommonDialog1.CancelError = True
CommonDialog1.ShowSave '打開保存檔案對話框
If CommonDialog1.FileName <> "" Then
Text2.Text = CommonDialog1.FileName '保存的檔案名
'以下保存檔案代碼
Dim intFNo As Long
intFNo = FreeFile
Open Text2.Text For Output As #intFNo
Print #intFNo, strD '保存到檔案
Close #intFNo
End If
err:
End Sub
uj5u.com熱心網友回復:
受益匪淺,謝謝。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/108087.html
標籤:VBA
上一篇:圖里面顯示“呵呵”兩個字的顯示框,可以用滑鼠拖動的,用VB怎么樣實作的呀
下一篇:上下微機通訊
