Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions archive/p/pascal/remove_all_whitespace.pas
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
program RemoveAllWhitespace;

{$mode objfpc}{$H+}

uses
SysUtils;

procedure ShowUsage;
begin
Writeln('Usage: please provide a string');
Halt(1);
end;

function RemoveWhitespace(const S: string): string;
var
builder: TStringBuilder;
ch: char;
begin
builder := TStringBuilder.Create;
try
for ch in S do
case ch of
' ', #9, #10, #13: Continue;
else
builder.Append(ch);
end;

Result := builder.ToString;
finally
builder.Free;
end;
end;

var
Input: string;
Output: string;
begin
if ParamCount <> 1 then
ShowUsage;

Input := ParamStr(1);
if Input = '' then
ShowUsage;

Output := RemoveWhitespace(Input);
Writeln(Output);
end.