PROGRAM 27
PROGRAM COPYANYTEXTFILE (INPUT, OUTPUT, INFILE, OUTFILE);
{ANTHONY F. ORITZ, ASSIGNMENT 10C, JULY 26, 1994}
{THIS PROGRAM COPIES A FILE.}
USES CRT;
TYPE
STRING11 = STRING [11];
PROCEDURE OPENFILES (VAR COUNT: INTEGER; VAR INFILE, OUTFILE: TEXT; VAR SOURCE, TARGET: STRING11);
BEGIN
COUNT := 0;
WRITE ('ENTER THE NAME OF AN EXISTING SOURCE FILE. ' );
READLN (SOURCE);
WRITE ('ENTER THE NAME OF THE TARGET FILE. ');
READLN (TARGET);
ASSIGN (INFILE, 'A:\' + SOURCE);
ASSIGN (OUTFILE, 'A:\' + TARGET);
RESET (INFILE);
REWRITE (OUTFILE);
END;
FUNCTION MORELINES (VAR INFILE: TEXT): BOOLEAN;
BEGIN
MORELINES := NOT EOF (INFILE);
END;
PROCEDURE COPYALINE (VAR INFILE, OUTFILE: TEXT; VAR CH: CHAR; VAR COUNT: INTEGER);
BEGIN
WHILE NOT EOLN (INFILE) DO
BEGIN
READ (INFILE, CH);
WRITE (OUTFILE, CH);
WRITE (CH);
COUNT := COUNT + 1;
END;
END;
PROCEDURE STARTNEXTLINE (VAR INFILE, OUTFILE: TEXT);
BEGIN
READLN (INFILE);
WRITELN (OUTFILE);
WRITELN;
END;
PROCEDURE PRINTCOUNT (COUNT: INTEGER; SOURCE: STRING11);
BEGIN
WRITELN;
WRITELN ('THERE ARE ', COUNT, ' CHARACTERS IN THE TEXT FILE ', SOURCE, '.');
END;
PROCEDURE CLOSEFILES (VAR INFILE, OUTFILE: TEXT);
BEGIN
CLOSE (INFILE);
CLOSE (OUTFILE);
END;
PROCEDURE PAUSE;
BEGIN
WRITELN;
WRITE ('PRESS ENTER KEY TO CONTINUE. ');
READLN;
END;
VAR
INFILE, OUTFILE: TEXT;
SOURCE, TARGET: STRING11;
CH: CHAR;
COUNT: INTEGER;
BEGIN
CLRSCR;
OPENFILES (COUNT, INFILE, OUTFILE, SOURCE, TARGET);
CLRSCR;
WHILE MORELINES (INFILE) DO
BEGIN
COPYALINE (INFILE, OUTFILE, CH, COUNT);
STARTNEXTLINE (INFILE, OUTFILE);
END;
PRINTCOUNT (COUNT, SOURCE);
CLOSEFILES (INFILE, OUTFILE);
PAUSE;
END.
{ DATA FILE: LETTER.TXT }
hi, anthony.
{ OUTFILE: BACKUP.TXT }
hi, anthony.
{ OUTFILE: PROG27.OUT }
ENTER THE NAME OF AN EXISTING SOURCE FILE. letter.txt
ENTER THE NAME OF THE TARGET FILE. backup.txt
hi, anthony.
THERE ARE 12 CHARACTERS IN THE TEXT FILE letter.txt.
PRESS ENTER KEY TO CONTINUE.
BACK TO COMP151 PAGE.