====== pears.MakeHTMLReadable ====== Generated schema reference. Regenerate this page from the SQL unload; keep hand-maintained business notes in the narrative namespace. ===== Original SQL ===== create function "pears"."MakeHTMLReadable"( /* Application Maintained Function / Procedure - DO NOT EDIT*/ @HTMLText long varchar,@ReplaceBR smallint ) returns long varchar as begin declare @Start integer declare @End integer declare @Length integer -- ReplaceBR with CRLF 0 - No 1 - Yes -- Replace the HTML entity & with the '&' character (this needs to be done first, as -- '&' might be double encoded as '&amp;') set @Start = "CHARINDEX"('&',@HTMLText) set @End = @Start+4 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'&') set @Start = "CHARINDEX"('&',@HTMLText) set @End = @Start+4 set @Length = (@End-@Start)+1 end -- Replace the HTML entity < with the '<' character set @Start = "CHARINDEX"('<',@HTMLText) set @End = @Start+3 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'<') set @Start = "CHARINDEX"('<',@HTMLText) set @End = @Start+3 set @Length = (@End-@Start)+1 end -- Replace the HTML entity > with the '>' character set @Start = "CHARINDEX"('>',@HTMLText) set @End = @Start+3 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'>') set @Start = "CHARINDEX"('>',@HTMLText) set @End = @Start+3 set @Length = (@End-@Start)+1 end -- Replace the HTML entity & with the '&' character set @Start = "CHARINDEX"('&amp;',@HTMLText) set @End = @Start+4 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'&') set @Start = "CHARINDEX"('&amp;',@HTMLText) set @End = @Start+4 set @Length = (@End-@Start)+1 end -- Replace the HTML entity   with the ' ' character set @Start = "CHARINDEX"(' ',@HTMLText) set @End = @Start+5 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,' ') set @Start = "CHARINDEX"(' ',@HTMLText) set @End = @Start+5 set @Length = (@End-@Start)+1 end if(@ReplaceBR = 1) begin -- Replace any
tags with a newline set @Start = "CHARINDEX"('
',@HTMLText) set @End = @Start+3 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,"CHAR"(13)+"CHAR"(10)) set @Start = "CHARINDEX"('
',@HTMLText) set @End = @Start+3 set @Length = (@End-@Start)+1 end -- Replace any
tags with a newline set @Start = "CHARINDEX"('
',@HTMLText) set @End = @Start+4 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'CHAR(13) + CHAR(10)') set @Start = "CHARINDEX"('
',@HTMLText) set @End = @Start+4 set @Length = (@End-@Start)+1 end -- Replace any
tags with a newline set @Start = "CHARINDEX"('
',@HTMLText) set @End = @Start+5 set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'CHAR(13) + CHAR(10)') set @Start = "CHARINDEX"('
',@HTMLText) set @End = @Start+5 set @Length = (@End-@Start)+1 end end -- Remove anything between tags set @Start = "CHARINDEX"('<',@HTMLText) set @End = "LOCATE"(@HTMLText,'>',"CHARINDEX"('<',@HTMLText)) set @Length = (@End-@Start)+1 while(@Start > 0 and @End > 0 and @Length > 0) begin set @HTMLText = "STUFF"(@HTMLText,@Start,@Length,'') set @Start = "CHARINDEX"('<',@HTMLText) set @End = "LOCATE"(@HTMLText,'>',"CHARINDEX"('<',@HTMLText)) set @Length = (@End-@Start)+1 end return "LTRIM"("RTRIM"(@HTMLText)) end