Пример 8.4.

Создать программу обмена данными с файлом, использующую связь с файлами без файловых переменных. Она заносит в буфер 6 случайных чисел и переносит их в файл (он создается в папке проекта). Затем буфер обнуляется, и из файла возвращаются первые 4 числа.

Листинг программы

program prg_8_4;

{$mode objfpc}{$H+}

uses

Classes, SysUtils, RusTrans;

const

Count=6;                                                             // Константа Count

var

hMyFile: Integer;                                                 // Дескриптор файла

Buffer: Array[1..Count] of Byte;                           // Буфер

i, Fact: Integer;

begin

hMyFile:=FileCreate(‘MyFile’);                            // Создать файл

writeln(Rus(‘В буфере случайные числа’));

Randomize;

for i:=1 to Count do                                              // Заполнить буфер

begin

Buffer[i]:= Random(100);

writeln(‘    ‘, Buffer[i]);                            // Вывод буфера на дисплей

end;

Fact:=Filewrite(hMyFile, Buffer, Count);     // Запись в файл

writeln(Rus(‘В файл записано чисел ‘),Fact);

readln;

writeln(Rus(‘Буфер очишается’));

for i:=1 to Count do

begin

Buffer[i]:=0;

writeln(‘    ‘,Buffer[i]);                             // Вывод буфера на дисплей

end;

readln;

FileSeek(hMyFile, 0, 0);                                     // Установить маркер

Fact:=FileRead(hMyFile, Buffer, Count-2);  // Чтение из файла

writeln(Rus(‘Из файла в буфер прочитаны’));

for i:=1 to Count do

begin

writeln(‘    ‘,Buffer[i]);                             // Вывод буфера на дисплей

end;

writeln(Rus(‘В буфере ненулевых чисел ‘),Fact);

FileClose (hMyFile);                                           // Закрыть файл

readln;

end.

Консоль перед закрытием программы:

paskal60

Выводы

  • В Lazarus определены типизированный, текстовый и нетипизированный файлы.
  • Связь с файлами может быть через файловые переменные или по именам.
  • При применении файловых переменных для связи с файлами на диске используется  процедура AssignFile.
  • В типизированном файле возможен произвольный доступ к компоненту с любым номером.
  • В текстовом файле произвольный доступ к символу невозможен. Можно обращаться к строкам текста.
  • Нетипизированные файлы полезны для скоростного копирования.
Twitter SEO Community Ваау! News2.ru Chipp Korica SMI2 Google Bookmarks Digg I.ua Закладки Yandex Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong



Copyright © 2009-2010 Программирование на паскале.