|
|
- ;IniRead 有五个参数, 第一个参数为目标 .ini 完整文件名, 第二个参数为节名, 第三个参数为键名, 第四个参数为默认值, 第五个参数为存放读取的值的变量
- ;当无法读取目标键的值时, 其返回值(第五个参数变量值)将为默认值(第四个参数定义的值)
- _SUB IniRead
- TEAM ENVI &FileName=%~1| ENVI &SectionName=%~2| ENVI &KeyName=%~3| ENVI &DefValue=%~4
- FIND %&FileName%=,EXIT _SUB
- FIND %&SectionName%=,EXIT _SUB
- FIND %&KeyName%=,EXIT _SUB
- FIND %&DefValue%=,EXIT _SUB
- CALL $--qd --ret:&ret Kernel32.dll,GetPrivateProfileStringW,$%&SectionName%,$%&KeyName%,$%&DefValue%,0,0,$%&FileName%
- TEAM CALC #&CC = %&ret% + 1| CALC #&nSize = %&CC% * 2
- SET$ &ValueName=*%&nSize% 0
- CALL $--qd --ret:&ret Kernel32.dll,GetPrivateProfileStringW,$%&SectionName%,$%&KeyName%,$%&DefValue%,*&ValueName,#%&CC%,$%&FileName%
- ENVI-ret %~5=%&ValueName%
- _END
- ;IniWrite 有四个参数, 第一个参数为目标 .ini 完整文件名, 第二个参数为节名, 第三个参数为键名, 第四个参数为值名, 第五个参数为返回值(若返回零则写入失败)
- ;其中第四个和第五个参数为可选, 当第四个参数留空时, 将移除目标键的值
- _SUB IniWrite
- TEAM ENVI &FileName=%~1| ENVI &SectionName=%~2| ENVI &KeyName=%~3| ENVI &ValueName=%~4
- FIND %&FileName%=,EXIT _SUB
- FIND %&SectionName%=,EXIT _SUB
- FIND %&KeyName%=,EXIT _SUB
- CALL $--qd --ret:&ret Kernel32.dll,WritePrivateProfileStringW,$%&SectionName%,$%&KeyName%,$%&ValueName%,$%&FileName%
- ENVI-ret %~5=%&ret%
- _END
复制代码 PS: mdyblog 老大的 PECMD 的示例代码(readini.wcs)中有读取 Ini 文本文件的封装代码段, 不过挺复杂的
|
|