Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Запись и чтение из файла массива записей 2

Delphi , Синтаксис , Записи и Множества

Запись и чтение из файла массива записей 2


type TR=Record
        Name:string[100]; 
        Age:Byte; 
        Income:Real; 
       end; 
var f:file of TR; 
    r:TR; 

begin 
//assign file 
  assignFile(f, 'MyFileName'); 
//open file 
  if FileExists('MyFileName') then 
    reset(f) 
  else 
    rewrite(f); 
//чтение 10й записи 
  seek(f,10); 
  read(f,r); 
//запись 20й записи 
 seek(f, 20); 
 write(f,r); 
 closefile(f); 
end;

Here's the translation of the content into Russian:

Программа ReadWriteRecordFile;

Тип TR = Запись Имя: строка[100]; Возраст: Байт; Доход: Реал; end;

var f: файл типа TR; // объявляем переменную файла типа TR r: TR; // объявляем переменную записи типа TR

begin // Назначаем имя файла переменной файла assignFile(f, 'МойФайл');

// Открываем файл. Если файл не существует, создаем его. if FileExists('МойФайл') then reset(f) // открываем существующий файл для чтения else rewrite(f); // создаем новый файл и открываем его для записи

// Читаем 10-ю запись из файла seek(file, 10); // перемещаем указатель файла на 10-ю запись (нолевое индексирование) read(f, r); // читаем 10-ю запись в переменную r

// Записываем новую запись на позиции 20 (заменяя любые существующие данные) seek(file, 20); write(f, r); // записываем запись из переменной r в файл на позиции 20

// Закрываем файл closeFile(f);

end.

Альтернативное решение:

Вместо того, чтобы искать и читать/записывать конкретную запись, можно прочитать все записи в массив и затем доступиться к желаемой записи с помощью ее индекса. Это подход более эффективен, если вам нужно обработать несколько записей.

Пример:

const
  МАКС_ЗАПИСЕЙ = 100;
var
  f: файл типа TR;
  r: массив[1..МАКС_ЗАПИСЕЙ] of TR;
  i: целочисленное;
begin
   // ...
  seek(file, 0);  // перемещаем указатель файла на начало файла
  for i := 1 to МАКС_ЗАПИСЕЙ do
    read(f, r[i]);  // читаем все записи в массив

   // Доступимся к 10-ю записи с помощью ее индекса
  writeln(r[10].Имя);

   // Записываем новую запись на позиции 20 (заменяя любые существующие данные)
  seek(file, 0);
  write(f, r[20]);

   // ...
end.

Этот подход предполагает, что вы знаете максимальное количество записей в вашем файле. Если вам неизвестно exact количество записей, можно прочитать все записи в массив и затем обработать их.

В статье описывается пример программирования на языке Паскаль, где демонстрируются операции чтения и записи из файла массива записей с использованием рекорда типа TR.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Записи и Множества ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 01:10:39/0.0046420097351074/2