 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 1 樓
|
發表於: 星期五 七月 01, 2005 10:52 am 文章主題: 用windows API 來做 ini檔的寫入和讀取 |
|
|
***************用windows API 來做 ini檔的寫入和讀取
*!* * test prg
*!* mfile='.\zz.ini' &&--請注意: 如果沒有加路徑名, 內定則會存到windows 目錄下
*!* msec ='區段名稱'
*!* mdata ='path'
*!* ? '>',writeFileIni(mfile,msec,mdata,'aaaaaa' ),'<'
*!* lcComputadora = ReadFileIni(mfile,msec , mdata )
*!* ? '=',lcComputadora,'='
*!* Return
Function writeFileIni(tcFileName,tcSection,tcEntry,tcWritedata)
Declare Integer WritePrivateProfileString ;
IN WIN32API ;
STRING lpAppName,;
STRING lpKeyName,;
STRING lpString,;
STRING tcFileName
RETURN WritePrivateProfileString(tcSection,tcEntry,tcWritedata,tcFileName)
********************
Function ReadFileIni(tcFileName,tcSection,tcEntry)
Local lcIniValue, lnResult, lnBufferSize
Declare Integer GetPrivateProfileString ;
IN WIN32API ;
STRING cSection,;
STRING cEntry,;
STRING cDefault,;
STRING @cRetVal,;
INTEGER nSize,;
STRING cFileName
lnBufferSize = 255
lcIniValue = Spac(lnBufferSize)
lnResult=GetPrivateProfileString(tcSection,tcEntry,"*NULL*",;
@lcIniValue,lnBufferSize,tcFileName)
lcIniValue=Substr(lcIniValue,1,lnResult)
If lcIniValue="*NULL*"
lcIniValue=.Null.
Endif
Return lcIniValue
*************garfield*********
Function deleteFileIni(tcFileName,tcSection,tcEntry)
RETURN writeFileIni(tcFileName,tcSection,tcEntry, null )
*************garfield*********
Function delSectionFileIni(tcFileName,tcSection)
RETURN writeFileIni(tcFileName,tcSection,null, null ) _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
garfield Site Admin

註冊時間: 2003-01-30 文章: 2160
第 2 樓
|
發表於: 星期日 七月 03, 2005 6:51 pm 文章主題: |
|
|
代碼: |
*-* >>> VFP OO By Garfield <<< *-*
* 功能: 針對 ini 檔的新增, 修改,刪除 的動作
* 用法:
* 說明: 見笑! 這是我寫的第一個OO程式, 歡迎指教.
***用法 測試
ini_file = createobject('ini_file')
ini_file.writeini('.\test.ini' ,'mysection','caption','test-caption')
WAIT windows 'caption='+ ini_file.readini('.\test.ini' ,'mysection','caption')
ini_file.writeini('.\test.ini' ,'mysection','title','haha')
clear
TYPE .\test.ini
WAIT 'wait delete entry (title)...'
ini_file.deleteini('.\test.ini' ,'mysection','title')
clear
TYPE .\test.ini
WAIT 'wait delete Section (mysection)...'
ini_file.delsectionini('.\test.ini' ,'mysection')
clear
TYPE .\test.ini
dele file test.ini
************** 可以將以下這段程式存成副程式, 用 set proc to .... 來準備使用
Define Class ini_file As Custom
file = ""
Procedure Init
Declare Integer WritePrivateProfileString ;
IN WIN32API ;
STRING lpAppName,;
STRING lpKeyName,;
STRING lpString,;
STRING tcFileName
Declare Integer GetPrivateProfileString ;
IN WIN32API ;
STRING cSection,;
STRING cEntry,;
STRING cDefault,;
STRING @cRetVal,;
INTEGER nSize,;
STRING cFileName
Endproc
Procedure writeini(mfilename,msection,mEntry,mWritedata)
RETURN WritePrivateProfileString(mSection,mEntry,mWritedata,mFileName)
ENDPROC
Procedure deleteini(mfilename,msection,mEntry)
RETURN WritePrivateProfileString(mSection,mEntry,.null.,mFileName)
ENDPROC
Procedure delsectionini(mfilename,msection)
RETURN WritePrivateProfileString(mSection,.null.,.null.,mFileName)
ENDPROC
Procedure readini(mfilename,msection,mEntry)
Local mIniValue, mResult, mBufferSize
mBufferSize = 255
mIniValue = Spac(mBufferSize)
mResult=GetPrivateProfileString(mSection,mEntry,"*NULL*",;
@mIniValue,mBufferSize,mFileName)
mIniValue=Substr(mIniValue,1,mResult)
If mIniValue="*NULL*"
mIniValue=.Null.
Endif
Return mIniValue
ENDPROC
Procedure Destroy
ENDPROC
ENDDEFINE
|
_________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|