
Using files for input/output is a bit of a sticking point.
Different Pascal compilers do it in different ways. However,
the method of reading/writing to the file is the same across
all compilers:
     read (file_variable,
argument_list);
     write (file_variable,
argument_list);
Same thing with readln and writeln.
In addition, most Pascal systems require that you declare a
file variable in the variable section:
     var
        ...
        filein, fileout : text;
The text data type is usually used. There are other file types,
but that's left for a later lesson.
The differences between Pascal compilers arises when you
open a file for reading or writing. In most Pascal compilers,
including Metrowerks Codewarrior and the Pascal translator
included with Unix/Linux, use:
     reset (file_variable, 'filename.extension');
to open a file for reading. Use:
     rewrite (file_variable, 'filename.extension');
to open a file for writing. Note that you can't open a file for both reading
and writing. A file opened with reset can only be used
with read and readln. A file opened with rewrite can
only be used with write and writeln.
Turbo Pascal does it differently. First you assign a filename to a variable, then you call reset or rewrite using only the variable.
assign (file_variable, 'filename.extension');
reset (file_variable)
The method of representing the path differs depending on your
operating system. Examples:
Unix: ~login_name/filename.ext DOS/Win: c:\directory\name.pas Mac: Disk_Name:Programs Directory:File Name.pas
You should close your file before your program ends! This
is the same for all compilers:
     close (File_Identifier);
Here's an example of a program that uses files. This program was written for Turbo Pascal and DOS, and will create file2.txt with the first character from file1.txt:
program CopyOneByteFile;
var
mychar : char;
filein, fileout : text;
begin
assign (filein, 'c:\file1.txt');
reset (filein);
assign (fileout, 'c:\file2.txt');
rewrite (fileout);
read (filein, mychar);
write (fileout, mychar);
close(filein);
close(fileout)
end.
Previous lesson |
Next lesson |
Contents |
Index |
e-mail me |