[Back to TEXTFILE SWAG index] [Back to Main SWAG index] [Original]
program ExpandTabs;
{
Public domain by Michael Teator
February 1995
}
const
Space: byte = 32;
type
TextFile = file of byte;
var
OutputFile, InputFile: TextFile;
OutputName, InputName: string;
t, Pos, TabSpace, ch: byte;
begin
writeln ('Tab Epander 1.0 Public Domain by Michael Teator');
writeln;
write ('Input File: ');
readln (InputName);
write ('Output File: ');
readln (OutputName);
if InputName = OutputName then begin
writeln ('Output file cannot be the same as the input file.');
halt (1)
end;
write ('Spaces between tabs: ');
readln (TabSpace);
if TabSpace < 1 then TabSpace := 1;
assign (InputFile, InputName);
assign (OutputFile, OutputName);
reset (InputFile);
rewrite (OutputFile);
Pos := 0;
while not eof(InputFile) do begin
read (InputFile, ch);
case ch of
9: for t := 1 to (TabSpace - (Pos mod TabSpace)) do begin
write (OutputFile, Space);
inc (Pos)
end;
13, 10: begin
Pos := 0;
write (OutputFile, ch)
end;
else begin
write (OutputFile, ch);
inc (Pos)
end;
end; { case }
end; { while }
close (InputFile);
close (OutputFile);
writeln ('Done.')
end.
[Back to TEXTFILE SWAG index] [Back to Main SWAG index] [Original]