VB+VFP聯合應用

VB+VFP聯合應用

各類語言都有其長處和缺憾,如何取長補短呢?希望這篇文章能起到拋磚引玉的效果。

目標:必須在VFP環境對CSV格式文件中所有的字符“/”替換成“-”

分析:如果在VFP中讀入CSV格式文件然後再找字符“/”再替換成“-”,勢必比較困難,速度也會很慢。因爲不知道字符“/”將出現在那個字段。也不清楚字符“/”出現的位置。而這類問題的處理如果用VB就很簡單。可以在VB中正行讀入,然後使用Replace命令就可以了,然後循環讀取下一行,直到文件末尾。可以使用OLE組件技術在VFP中調用VB實現的相關功能。具體方法如下:

首先用VB生成一個Dll,名爲Lib,模塊名爲Tools。在Tools模塊中寫入下列代碼。

例如:
Public Function ReplaceA(ByVal Source As String)
If Source = "" Then
Exit Function
End If

On Error GoTo Open_Err
Dim Destination As String

Destination = "c:/tmp.t"
FileCopy Source, Destination
Kill Source

On Error GoTo Replace_Err
Dim textLine

Open Destination For Input As #1
Open Source For Output As #2
Do While Not EOF(1)
Line Input #1, textLine
textLine = Replace(textLine, "/", "-")
Print #2, textLine
Loop
Close #1
Close #2

Kill Destination

Exit_Sub:
Exit Function
Replace_Err:
Debug.Print Err.Description
Resume Exit_Sub
Open_Err:
Debug.Print Err.Description
Resume Exit_Sub
End Function

然後在VFP中調用方法如下:
mytools = createobject("Lib.myLib")
mytools.ReplaceA("完整文件名並且要帶絕對路徑")
release mytools

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章