Need to Upgrade My FrameScript
Hi All,
I have a FrameScript that adds a standard text after body text "This section lists the main changes...", but now that body text is appended with a Note (Note text "Also see the RELEASE_NOTES file in the ARM_CORTEX_A5_TLM2_LT PSP for updates since this document was published") and the script has stopped working. I am not sure how to make this script look for the Note & add the standard lines after Note. Please Help.
Here is the script:
Set vgBookFile = '';
set vgBookFile = args[1];
//set vgBookFile = 'FastModelfilelist.txt';
if (vgBookFile = '')
write console 'No books file specified. Exiting.';
LeaveScript;
else
write console args[1] + 'latest';
EndIf
vFileList = getFilesFromList{vgBookFile};
Loop InitVal(1) Incr(1) LoopVar(vI) While(vI <=vFileList.count)
Set vBookInfo = vFileList[vI];
Set vBookInfo.mustclose = fTestOpen{vBookInfo.path,vBookInfo.book};
if (vBookInfo.book = NULL)
write console 'Could not open specified book file: '+vBookInfo.path;
LeaveScript;
else
Loop ForEach(BookComponent) In(vBookInfo.book) LoopVar(gvBookComp)
Set selectedfile = gvBookComp.name;
//display selectedfile;
Set charPos = eStr.FindString{selectedfile, '_rel.fm'};
If charpos != 0
//Display 'This is it';
//Display 'Opening the rel file';
Open Document File (selectedfile) NewVar(selFile)
FileIsOldVersion(OK) FontNotFoundInDoc(OK) FontNotFoundInCatalog(OK)
AlertUserAboutFailure(False) FileIsInUse(ResetLockAndContinue)
RefFileNotFound(AllowAllRefFilesUnFindable) LanguageNotAvailable(OK)
FontChangedMetric(OK) ReturnStatus(gvErrorList);
Loop ForEach(Pgf) In(selFile) LoopVar(oPgf)
Set charPos1 = eStr.FindString{oPgf.Text, 'This section lists the main changes and enhancements in this release of'};
If (charPos1 != 0)
//Display 'new para';
//Display oPgf.Text;
New Paragraph PrevObject(oPgf) PgfFmtName('H3') Text('O-2018.09-SP2-2') NewVar(oPgf1);
New Paragraph PrevObject(oPgf1) PgfFmtName('Body') Text('There are no changes and enhancements in this release of .') NewVar(oPgf2);
New TextLoc Object(oPgf2) Offset(ObjEndOffset-2) NewVar(oPgf3);
New Variable Format('product') NewVar(oPgf3) TextLoc(oPgf3);
PopClipboard;
EndIf
EndLoop
Loop ForEach(Pgf) In(selFile) LoopVar(1Pgf)
Set charPos1 = eStr.FindString{1Pgf.Text, 'This section lists compatibility issues that you must take into account in this release of'};
If (charPos1 != 0)
//Display 'new para';
//Display oPgf.Text;
New Paragraph PrevObject(1Pgf) PgfFmtName('H3') Text('O-2018.09-SP2-2') NewVar(1Pgf1);
New Paragraph PrevObject(1Pgf1) PgfFmtName('Body') Text('There are no compatibility issues in this release of .') NewVar(1Pgf2);
New TextLoc Object(1Pgf2) Offset(ObjEndOffset-2) NewVar(1Pgf3);
New Variable Format('product') NewVar(1Pgf4) TextLoc(1Pgf3);
PopClipboard;
EndIf
EndLoop
Loop ForEach(Pgf) In(selFile) LoopVar(2Pgf)
Set charPos1 = eStr.FindString{2Pgf.Text, 'If the problem has been assigned a Synopsys ID in the Synopsys defect tracking system, this number is also listed; otherwise, No ID is specified.'};
If (charPos1 != 0)
//Display 'new para';
// Display oPgf.Text;
New Paragraph PrevObject(2Pgf) PgfFmtName('H3') Text('O-2018.09-SP2-2') NewVar(2Pgf1);
New Paragraph PrevObject(2Pgf1) PgfFmtName('Body') Text('There are no fixed problems in this release of .') NewVar(2Pgf2);
New TextLoc Object(2Pgf2) Offset(ObjEndOffset-2) NewVar(2Pgf3);
New Variable Format('product') NewVar(2Pgf4) TextLoc(2Pgf3);
PopClipboard;
endif
endloop
Save Document object(selfile);
Close Document object(selfile) ignoremods;
Endif
EndLoop
EndIf
Set vFileList[vI] = vBookInfo;
Close Document DocObject(vBookInfo.book) IgnoreMods;
EndLoop
Function getFilesFromList Using vFileListName;
Local vFileList;
New EVector NewVar(vFileList);
Set errorcode = 0;
// Open the file and test for error...
Open TextFile File(vFileListName) IOType(ReadOnly) NewVar(vBFile);
if (vBFile = 0)
// If the file cannot be opened, it's pretty much game over.
// fLog{logBoth, logFatal, 'Error opening list of books '+vFileListName+'.'};
//fLogClose{};
LeaveScript;
EndIf
Read File(vBFile) Rewind;
Set errorcode = 0;
Read File(vBFile) NewVar(vBLine);
Loop While (errorcode = 0)
Get String FromString(vBLine) NewVar(vBLine)
RemoveLeading(' ') RemoveTrailing(' ')
if vBLine.count NOT = 0;
// Look for comment character
Get Member Number(1) From(vBLine) NewVar(vBChar);
if vBChar NOT = '#'
Set vBookInfo = eUtl.EStructure{
'path',vBLine,
'mustclose',0,
'book',0
};
vFileList.PushBack{vBookInfo};
EndIf
EndIf
Read File(vBFile) NewVar(vBLine);
EndLoop
Close TextFile Object(vBFile);
// Log the success.
//fLog{logBoth, logNote, 'Successs reading list of books from '+vFileListName+'.'};
Set Result = vFileList;
EndFunction;
Function fTestOpen Using vTOfilename BYREF vTOhandle;
Local vTOmustclose(FALSE);
Run isBookOpenAlready vFilename(vTOfilename) returns theBook(vTOHandle);
if vTOHandle = 0
Set vTOmustclose = TRUE;
Find String('.book') InString(vTOfilename) NoCase ReturnStatus(vTOGotBook);
Set ErrorCode = 0
If vTOGotBook = TRUE
Open Book File(vTOfilename) NewVar(vTOHandle) MakeIconic(True)
OpenDocViewOnly(True) AlertUserAboutFailure(FALSE);
Else
Open Document File(vTOfilename) NewVar(vTOHandle) MakeIconic(True)
OpenDocViewOnly(True) AlertUserAboutFailure(FALSE);
EndIf
if ErrorCode NOT = 0
fLog{logBoth, logWarn, 'Open Failure-'+ErrorCode+' Msg-'+ErrorMsg};
fLog{logBoth, logWarn, 'Open Messages-'+gvErrorList};
EndIf
if vTOHandle = 0
fLog{logBoth, logWarn, 'The file '+vTOfilename+
' could not be opened; check the name and try again.'}
Set Result = vTOmustclose;
LeaveScript;
endif
Endif
Set Result = vTOmustclose;
EndFunction // fTestOpen
sub isBookOpenAlready using vFilename theBook
Get string Fromstring (vFilename) uppercase NewVar(vFilenameUC); // Upper case the string
set theBook = 0;
loop foreach(book) In(session) loopvar(vTestBook)
get string fromstring (vTestBook.Name) uppercase newvar(vTname); // Upper case the string
if vTname = vFilenameUC
set theBook = vTestBook;
leaveloop;
endif
endloop
endsub
