Good script, Bracket. But it can be made faster with in a first step remove some lines by using boolean variables instead of integer variables:
- Code: Select all
var WorkingFile = UltraEdit.activeDocument;
// Function to execute a RegEx Find. Set CaseFlag to true for Case Sensitive, or false for not.
function findRegEx(SearchString, CaseFlag)
{
UltraEdit.perlReOn();
WorkingFile.findReplace.matchCase = CaseFlag;
WorkingFile.findReplace.regExp = true;
WorkingFile.findReplace.find(SearchString);
}
function Base64Decode(SearchString)
{
// Flag to indicate if the loop should be broken
var BreakFlag = false;
WorkingFile.top();
// Run the search and decode every found string
do
{
findRegEx (SearchString, false);
// If it found a match, decode it.
if (WorkingFile.isFound() == true)
{
WorkingFile.decodeBase64();
}
else
{
BreakFlag = true;
}
} while (BreakFlag == false);
WorkingFile.top();
}
// ---------------------------------------------------------------------
// Main Execution
// ---------------------------------------------------------------------
Base64Decode("(?<=>>> 334 ).*");
Base64Decode("(?:[A-Za-z0-9+/=]{20,})");
And in a second step it can be once more speed up by removing even more lines (function calls) resulting finally in:
- Code: Select all
var WorkingFile = UltraEdit.activeDocument;
function Base64Decode(SearchString)
{
WorkingFile.top();
UltraEdit.perlReOn();
WorkingFile.findReplace.matchCase = false;
WorkingFile.findReplace.regExp = true;
while(WorkingFile.findReplace.find(SearchString))
{
WorkingFile.decodeBase64();
}
WorkingFile.top();
}
// ---------------------------------------------------------------------
// Main Execution
// ---------------------------------------------------------------------
Base64Decode("(?<=>>> 334 ).*");
Base64Decode("(?:[A-Za-z0-9+/=]{20,})");
Please note that I have executed whether the script written by Bracket nor the modified scripts above. So I don't know if they really work.