Quintiq file version 2.0 #parent: #root Method PTF_RemoveTextBetweenKeepNewLines ( String body, String startsymbol, String endsymbol ) as String id:Method_LibPTF_dlgCreateEditTestScript_PTF_RemoveTextBetweenKeepNewLines { #keys: '[104342.0.875298696]' Body: [* // Helper method to remove strings between the start and end indicator resultbody := body; // Remove everything between startsymbol and endsymbol. // Both startsymbol and endsymbol are also removed, unless the last character of endsymbol is a newline. // In that case the newline is not removed. idxstart := resultbody.FindString( startsymbol, 0 ); while( idxstart >= 0 ) { idxend := resultbody.FindString( endsymbol, idxstart + 1 ); if( idxend < 0 ) { idxend := resultbody.Length() - endsymbol.Length(); } // Keep number of newlines found before deleting the comments textremovelength := idxend - idxstart + endsymbol.Length(); texttoremove := resultbody.SubString( idxstart, textremovelength ) nfofnewlines := texttoremove.NrOccurrences( String::NewLine(), 0, true ); resultbody := resultbody.Replace( idxstart, textremovelength, "" ); // Insert Newlines back to the resultbody while( nfofnewlines > 0 ) { resultbody := resultbody.Insert( idxstart, String::NewLine() ); nfofnewlines--; } idxstart := resultbody.FindString( startsymbol, idxstart ); } return resultbody; *] }