下是我用IS7时,在打包完成事件中处理文件的实例:
/*OnEnd函数定义在ifx.h文件中,其它相关函数也可以在此头文件中找到*/
function OnEnd()
string svResult,sPath, svReturnLine, szSearchStr, szFileName, sNewVal;
number nvFileHandle, nvLineNumber;
BOOL bOK;
begin
/*下面是将单位类型写入rm.ini文件*/
OpenFileMode(FILE_MODE_APPEND);
/*得到安装目的路径*/
sPath = TARGETDIR;
/*将路径中的字符'/'换成'//' */
StrReplace(sPath,"//","",0);
sPath = sPath ^ "";
/*打开文件*/
if (FindFile(sPath,"RM.ini",svResult) < 0) then
CreateFile(nvFileHandle, sPath,"RM.ini");
else
OpenFile(nvFileHandle,sPath,"RM.ini");
endif;
/*路径中的+号,可以使用^来代替*/
szFileName = sPath ^ "RM.ini";
szSearchStr = "ID";
/*组件新值ID*/
sNewVal = "ID=" + svSerial;
/*在文件中查找ID段*/
FileGrep( szFileName , szSearchStr , svReturnLine , nvLineNumber ,1 );
/*如果原ID值不等于新值则删除旧值*/
if (svReturnLine != sNewVal) then
FileDeleteLine(szFileName,nvLineNumber,nvLineNumber);
endif;
/*写入新ID值*/
WriteLine(nvFileHandle,"ID=" + svSerial);
CloseFile(nvFileHandle);
/*
ConfigFileLoad( TARGETDIR ^ "Rm.ini" );
ConfigSetInt( "ID" ,9 ); */
end;