在VFP中實(shí)現(xiàn)FTP遠(yuǎn)程通信

字號(hào):

目前VFP仍然受到很多程序員的喜愛(ài),特別是在中小規(guī)模的單機(jī)、局域網(wǎng)的前臺(tái)應(yīng)用軟件開(kāi)發(fā)中得到了廣泛的使用。下面介紹一下如何使用FCREATE()、FWRITE()、FCLOSE()三個(gè)函數(shù),在VFP中實(shí)現(xiàn)FTP遠(yuǎn)程傳送文件的方法。
    FCREATE(cFileName[,nFileAttribute])函數(shù)的功能是創(chuàng)建并打開(kāi)低級(jí)文件,其中參數(shù)cFileName指定要?jiǎng)?chuàng)建的文件名稱,在文件名前可以加入驅(qū)動(dòng)器指示符和路徑,如果沒(méi)有包括驅(qū)動(dòng)器指示符或路徑,則在默認(rèn)目錄下創(chuàng)建該文件。NFileAttribute指定文件的屬性,可選值為0…7,0為讀寫(xiě)方式(默認(rèn)值),其它參見(jiàn)VFP的隨機(jī)幫助。返回值為數(shù)值型,創(chuàng)建成功返回文件句柄編號(hào),可以把該編號(hào)賦給內(nèi)存變量,從而可以在其他的低級(jí)文件函數(shù)用此內(nèi)存變量訪問(wèn)該文件,如果不能創(chuàng)建文件,則返回-1。
    FWRITE(cFileHandle,cExpression[,nCharactersWritten])函數(shù)的功能是向低級(jí)文件函數(shù)打開(kāi)的文件或通信端口寫(xiě)入字符串,其中參數(shù)nFileHandle為文件句柄號(hào),或要寫(xiě)入字符串的通信端口,cExpression指定FWRITE()函數(shù)寫(xiě)入字符表達(dá)式,nCharatersWritten為寫(xiě)入文件或通信端口的cExpression中的字符的數(shù)目,返回值為0,表示操作失敗。
    FCLOSE(,nFileHandle)函數(shù)的功能是刷新并關(guān)閉低級(jí)文件函數(shù)打開(kāi)的文件或通信端口。
    下面列出名稱為MYFTP()的自定義函數(shù)的源代碼,該函數(shù)首先調(diào)用已有的撥號(hào)連接,待用戶確定線路連通后,創(chuàng)建ftp連接進(jìn)行文件傳輸,完成后,關(guān)閉ftp通信端口,并提示用戶斷開(kāi)撥號(hào)連接。
    function myftp
    ***調(diào)用撥號(hào)網(wǎng)絡(luò)中名為“我的連接”的拔號(hào)連接,如用戶為專線或局域網(wǎng)連接,刪除該段
    run /N rundll32.exe rnaui.dllRnaDial 我的連接
    if messagebox('通信線路是否連通,開(kāi)始傳送文件嗎?',1)=2
    wait wind [取消傳送文件,請(qǐng)斷開(kāi)連接線路!] nowait
    return -1
    endif
    *** 創(chuàng)建FTP連接
    fp=fcreate(“ftpcp”,0)
    if fp=-1
    wait wind [不能創(chuàng)建FTP連接,請(qǐng)檢查網(wǎng)絡(luò)配置] nowait
    return -1
    endif
    *** FTP用戶登錄,192.168.0.1為遠(yuǎn)程FTP服務(wù)器的IP
    ss=[open 10.168.0.1]+chr(13)+chr(10)+[ftpusrname]+chr(13)+chr(10)+[usrpasswd]+chr(13)+chr(10)
    if fwrite(fp,ss)=0