Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Несколько функций для TStream

Delphi , Компоненты и Классы , Потоки

Несколько функций для TStream

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
 These are three utility functions to write strings to a TStream. 
 Nothing fancy, but I just ended up coding this repeatedly so 
 I made these functions. }

 { 
 Hier sind einige TStreaam Hilfsfunktionen um strings 
 in einen TStream zu schreiben. 
}


 unit ClassUtils;

 interface

 uses
   SysUtils,
   Classes;

 {: Write a string to the stream 
   @param Stream is the TStream to write to. 
   @param s is the string to write 
   @returns the number of bytes written. }
 function Writestring(_Stream: TStream; const _s: string): Integer;

 {: Write a string to the stream appending CRLF 
   @param Stream is the TStream to write to. 
   @param s is the string to write 
   @returns the number of bytes written. }
 function WritestringLn(_Stream: TStream; const _s: string): Integer;

 {: Write formatted data to the stream appending CRLF 
   @param Stream is the TStream to write to. 
   @param Format is a format string as used in sysutils.format 
   @param Args is an array of const as used in sysutils.format 
   @returns the number of bytes written. }
 function WriteFmtLn(_Stream: TStream; const _Format: string;
   _Args: array of const): Integer;

 implementation

 function Writestring(_Stream: TStream; const _s: string): Integer;
 begin
   Result := _Stream.Write(PChar(_s)^, Length(_s));
 end;

 function WritestringLn(_Stream: TStream; const _s: string): Integer;
 begin
   Result := Writestring(_Stream, _s);
   Result := Result + Writestring(_Stream, #13#10);
end;

function WriteFmtLn(_Stream: TStream; const _Format: string;
   _Args: array of const): Integer;
 begin
   Result := WritestringLn(_Stream, Format(_Format, _Args));
 end;

Программные функции для записи строк в поток (TStream)!

Вот подробное описание кода:

Функции

  1. Writestring: Записывает строку в указанный TStream. Возвращает количество байтов, написанных.
  2. WritestringLn: Записывает строку в указанный TStream, за которой следует последовательность CRLF (перевод каретки и символ возврата). Возвращает количество байтов, написанных, которое включает в себя длину оригинальной строки плюс 2 (для CRLF).
  3. WriteFmtLn: Записывает форматированные данные в указанный TStream с помощью SysUtils.Format. Форматированная строка затем передается в WritestringLn для записи.

Имплементация

Имплементация простая: 1. Writestring: Просто записывает строку в поток с помощью PChar и Length. 2. WritestringLn: Вызывает Writestring, чтобы записать оригинальную строку, а затем добавляет 2 (для CRLF) к результату. 3. WriteFmtLn: Использует SysUtils.Format, чтобы форматировать данные по указанному формату и массиву аргументов. Полученная форматированная строка передается в WritestringLn для записи.

Рекомендации

  • Рассмотрите возможность использования более надежного способа обработки ошибок, например, проверки значения возвращаемого функцией Write или Format. Это поможет вам обнаружить любые проблемы с записью в поток.
  • Если вы планируете использовать эти функции широко, рассмотрите возможность добавления логирования или отладочной функциональности для помощи в идентификации потенциальных проблем.
  • Вы также можете рассмотреть возможность добавления дополнительной функциональности, например, поддержки записи двоичных данных или обработки строк Unicode.

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

В статье описаны три полезных функции для записи строк в поток TStream: Writestring, WritestringLn и WriteFmtLn, которые могут быть использованы для упрощения процесса записи данных в файлы.


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

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Потоки ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-05-01 13:27:19/0.0031309127807617/0