Strip block comments: Difference between revisions
Content added Content deleted
Catskill549 (talk | contribs) |
MaiconSoft (talk | contribs) (Added Delphi example) |
||
Line 754: | Line 754: | ||
===The stripped comments: |
===The stripped comments: |
||
# and bananas; and bananas </pre> |
# and bananas; and bananas </pre> |
||
=={{header|Delphi}}== |
|||
{{libheader| System.SysUtils}} |
|||
{{Trans|C#}} |
|||
<lang Delphi> |
|||
program Strip_block_comments; |
|||
{$APPTYPE CONSOLE} |
|||
uses |
|||
System.SysUtils; |
|||
function BlockCommentStrip(commentStart, commentEnd, sampleText: string): string; |
|||
begin |
|||
while ((sampleText.IndexOf(commentStart) > -1) and (sampleText.IndexOf(commentEnd, |
|||
sampleText.IndexOf(commentStart) + commentStart.Length) > -1)) do |
|||
begin |
|||
var start := sampleText.IndexOf(commentStart); |
|||
var _end := sampleText.IndexOf(commentEnd, start + commentStart.Length); |
|||
sampleText := sampleText.Remove(start, (_end + commentEnd.Length) - start); |
|||
end; |
|||
Result := sampleText; |
|||
end; |
|||
const |
|||
test = '/**' + #10 + '* Some comments' + #10 + |
|||
'* longer comments here that we can parse.' + #10 + '*' + #10 + '* Rahoo ' + |
|||
#10 + '*/' + #10 + 'function subroutine() {' + #10 + |
|||
'a = /* inline comment */ b + c ;' + #10 + '}' + #10 + |
|||
'/*/ <-- tricky comments */' + #10 + '' + #10 + '/**' + #10 + |
|||
'* Another comment.' + #10 + '*/' + #10 + 'function something() {' + #10 + '}'; |
|||
begin |
|||
writeln(BlockCommentStrip('/*', '*/', test)); |
|||
readln; |
|||
end.</lang> |
|||
{{out}} |
|||
<pre> |
|||
function subroutine() { |
|||
a = b + c ; |
|||
} |
|||
function something() { |
|||
}</pre> |
|||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |