Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  

форум программистов

Основы Delphi
Write
Процедура
Записывает данные в бинарный или текстовый файл System unit
  
1 procedure Write ( Expression1 {options} {, Expression2 {options} ...} ) ;

2 procedure Write ( var FileHandle : TextFile; Expression1 {options} {, Expression2 {options} ...} ) ;

3 procedure Write ( var FileHandle : File; var Value1 {,var Value2 ...} ) ;
Описание
Процедура Write запишет отдельную строку данных в файл или консоль.

Версия 1:

Используется, чтобы записать строку текста на консоль.

Версия 2:

Используется, чтобы записать строку текста в текстовый файл с данным указателем FileHandle.

Версия 3:

Используется, чтобы записать строку данных в двоичный файл с данным указателем FileHandle.

Вы должны использовать AssignFile, чтобы связать файл с FileHandle и открыть файл с помощью процедуры Reset или ReWrite перед использованием WriteLn.

Запись текста может быть с любыми правильными Выражениями(Expression). Часто они являются строками, но могут быть также выражениями, которые приводят к строкам или числам.

После каждого выражения, вы можете добавить опции форматирования:

:width ширина поля для строк + чисел
:precision десятичные цифры для чисел

Для типизированных двоичных файлов, значения данных Value1, Value2 и т.д., записываются как строки данных в файл. Эти значения должны иметь тот же самый тип, что и файл.
Примечания
Вы не можете использовать Write, чтобы записать в двоичный нетипизированный файл (который объявлен как File без последующего указания типа of type).

Чтобы записывать в двоичному файлу, используйте BlockWrite.

Write не буферизует записи, так что более эффективно использовать BlockWrite.

Write также является директивой Delphi. Она используется с ключевым словом Property.
Похожие команды
AssignFile  Связывает дескриптор файла с бинарным или текстовым файлом

BlockRead  Читает блок записей данных из нетипизированного двоичного файла

BlockWrite  Записывает блок записей данных в нетипизированный двоичный файл

File  Определяет типизированный или нетипизированный файл

Read  Позволяет прочитать данные из двоичного или текстового файла

ReadLn  Позволяет прочитать полную строку данных из текстового файла

Reset  Открывает текстовый файл для чтения, или двоичный файл для чтения/записи

ReWrite  Открывает текстовый или двоичный файл для записи

TextFile  Объявляет типа файл для того, чтобы сохранить строки текста

WriteLn  Записывает законченную строку данных в текстовый файл

 
Пример кода : Иллюстрация записи простой, множественной и форматированной строки текста
var
  myFile : TextFile;
  text   : string;
  i      : Integer;

begin
  // Попытка открыть файл Test.txt для записи
  AssignFile(myFile, 'Test.txt');
  ReWrite(myFile);

  // Запись нескольких известных слов в этот файл
  Write(myFile, 'Hello ');
  Write(myFile, 'World');

  // Заканчиваем эту строку
  WriteLn(myFile);

  // Запись некоторых чисел в файл как одиночная линия
  for i := 2 to 4 do
    Write(myFile, i/2, '  ');

  // Заканчиваем эту строку
  WriteLn(myFile);

  // Повторение вышеупомянутого, но с форматированием чисел
  for i := 2 to 4 do
    Write(myFile, i/2:5:1);

  // Заканчиваем эту строку
  WriteLn(myFile);

  // Закрываем файл
  CloseFile(myFile);

  // Повторное открытие файла только для чтения
  Reset(myFile);

  // Показ содержимого файла
  while not Eof(myFile) do
  begin
    ReadLn(myFile, text);
    ShowMessage(text);
  end;

  // Закрытие файла в последний раз
  CloseFile(myFile);
end;
Hello World
1.00000000000000E+0000 1.50000000000000E+0000 2.00000000000000E+0000
1.0 1.5 2.0
 
Пример кода : Запись типизированных записей в двоичный файл типа записи
type
  TCustomer = record
    name : string[20];
    age  : Integer;
    male : Boolean;
  end;

var
  myFile   : File of TCustomer;  // Файл записи клиента
  customer : TCustomer;

begin
  // Попытка открыть бинарный файл Test.cus для записи
  AssignFile(myFile, 'Test.cus');
  ReWrite(myFile);

  // Запись нескольких записей клиента в файл
  customer.name := 'Fred Bloggs';
  customer.age  := 21;
  customer.male := true;
  Write(myFile, customer);

  customer.name := 'Jane Turner';
  customer.age  := 45;
  customer.male := false;
  Write(myFile, customer);

  // Закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла в режиме только для чтения
  FileMode := fmOpenRead;
  Reset(myFile);

  // Показ содержимого файла
  while not Eof(myFile) do
  begin
    Read(myFile, customer);
    if customer.male
    then ShowMessage('Мужчина по имени '+customer.name+
                     ' - '+IntToStr(customer.age))
    else ShowMessage('Женщина по имени '+customer.name+
                     ' - '+IntToStr(customer.age));
  end;

  // Закрытие файла в последний раз
  CloseFile(myFile);
end;
Мужчина по имени Fred Bloggs - 21
Женщина по имени Jane Turner - 45
 
Пример кода : Запись в двоичный файл типа Word
var
  myWord, myWord1, myWord2 : Word;
  myFile : File of Word;

begin
  // Попытка открыть бинарный файл Test.bin для записи
  AssignFile(myFile, 'Test.bin');
  ReWrite(myFile);

  // Запись нескольких строк Word данных в файл
  myWord1 := 234;
  myWord2 := 567;
  Write(myFile, myWord1, myWord2);

  // Закрытие файла
  CloseFile(myFile);

  // Повторное открытие файла в режиме только для чтения
  FileMode := fmOpenRead;
  Reset(myFile);

  // Показ содержимого файла
  while not Eof(myFile) do
  begin
    Read(myFile, myWord);
    ShowMessage(IntToStr(myWord));
  end;

  // Закрытие файла в последний раз
  CloseFile(myFile);
end;
234
567
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия