Files/bg

From Lazarus wiki

български (bg) Deutsch (de) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 

Файлове

(author: Tao Yue, state: unchanged)

Четенето от файл вместо от конзолата (клавиатурата) може да се извърши чрез:

read (file_variable, argument_list);
write (file_variable, argument_list);

Това важи и за readln and writeln. Променливата file_variable се декларира по следния начин:

var
  ...
  filein, fileout : text;

Типът text означава, че файлът е обикновен текстов файл.

След декларирането на променлива за файла и преди четене от или писане в него, трябва да свържем променливата с името на файла на диска и да отворим файла. Това може да стане по един от двата начина. Обикновено:

reset (file_variable, 'filename.extension');
rewrite (file_variable, 'filename.extension');

Процедурата reset отваря файла за четене, а rewrite отваря файла за писане. Файл отворен с reset може да се използва само с read и readln. Файл отворен с rewrite може да се използва само с write и writeln.

Турбо Паскал въведе assign нотацията. Първо присвоявате име на файл на променлива, след което извиквате reset или rewrite, като използвате само променливата.

assign (file_variable, 'filename.extension');
reset (file_variable);

Методът за представяне на пътя и името на файла се различава в зависимост от операционната система. В Windows се използват обратни наклонени черти и букви на устройството защото произлиза от DOS (e.g. c:\directory\name.pas), докато FreeBSD, macOS и Linux използват '/' поради наследяването им от UNIX.

След като приключите с файла, можете да го затворите с:

close (file_variable);

Ето пример за програма, която използва файлове. Тази програма е написана за Turbo Pascal и DOS и ще създаде file2.txt с първия символ от 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.
 ◄   ▲   ►