How to remove newlines from a string Pascal

2 Answers

0 votes
program RemoveNewLinesProgram;
 
function RemoveNewLines(const s: string): string;
var
  i: Integer;
begin
  RemoveNewLines := '';
  for i := 1 to Length(s) do
    if not (s[i] in [#10, #13]) then
      RemoveNewLines := RemoveNewLines + s[i];
end;
 
var
  s: string;
begin
  s := 'pascal' + #10 + ' c c++ ' + #13 + ' java python' + #13 + 'go';
  s := RemoveNewLines(s);
  WriteLn(s);
end.
 
 
 
(*
run:
 
pascal c c++  java pythongo
 
*)

 



answered Feb 21 by avibootz
edited Feb 21 by avibootz
0 votes
program RemoveNewLinesProgram;
 
function RemoveNewLines(const s: string): string;
var
  i: Integer;
  lastWasSpace: Boolean;
begin
  RemoveNewLines := '';
  lastWasSpace := False;
 
  for i := 1 to Length(s) do
  begin
    case s[i] of
      #10, #13:
        begin
          { Treat newline as a space }
          if not lastWasSpace then
          begin
            RemoveNewLines := RemoveNewLines + ' ';
            lastWasSpace := True;
          end;
        end;
 
      ' ':
        begin
          { Collapse multiple spaces }
          if not lastWasSpace then
          begin
            RemoveNewLines := RemoveNewLines + ' ';
            lastWasSpace := True;
          end;
        end;
 
    else
      RemoveNewLines := RemoveNewLines + s[i];
      lastWasSpace := False;
    end;
  end;
 
  { Trim trailing space if any }
  if (Length(RemoveNewLines) > 0) and (RemoveNewLines[Length(RemoveNewLines)] = ' ') then
    Delete(RemoveNewLines, Length(RemoveNewLines), 1);
end;
 
var
  s: string;
begin
  s := 'pascal' + #10 + ' c c++ ' + #13 + ' java python' + #13 + 'go';
  s := RemoveNewLines(s); // result without extra spaces
  WriteLn(s);
end.
 
 
 
 
(*
run:
 
pascal c c++ java python go
 
*)

 



answered Feb 21 by avibootz
edited Feb 21 by avibootz
...