Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Dateien / Laufwerke (https://www.delphipraxis.net/41-library-dateien-laufwerke/)
-   -   Delphi Stream/File mit Musterdaten beschreiben (https://www.delphipraxis.net/48662-stream-file-mit-musterdaten-beschreiben.html)

shmia 28. Jun 2005 17:55


Stream/File mit Musterdaten beschreiben
 
folgende Procedure beschreibt einen Stream mit einen vorgegebenen String.
Dieser String (pattern) wird solange wiederholt, bis die vorgegebene Grösse (size) erreicht ist:
Delphi-Quellcode:
procedure WritePatternString(stream:TStream; pattern:string; size:integer);
var
   i : Integer;
   rest : Integer;
begin
   Assert(Assigned(stream));

   // wenn kein pattern vorgegeben, dann wird mit #0 gefüllt
   if pattern='' then
      pattern := #0;

   // wenn das pattern sehr kurz ist, wird es solange
   // aneinander gehängt, bis mindestens 1KB zusammenkommt
   // nur so ist die Performance zufriedenstellend
   while Length(pattern) < 1024 do
      pattern := pattern + pattern;

   // zurück auf Anfang
   stream.Position := 0;
   for i := 1 to Size div Length(pattern) do
   begin
      stream.WriteBuffer(pattern[1], Length(pattern));
   end;

   // restliche Byte ausrechnen
   rest := size mod Length(pattern);
   // und ggf. schreiben
   if rest > 0 then
      stream.WriteBuffer(pattern[1], rest);
end;

procedure WritePatternToFile(const filename:string; pattern:string; size:integer);
var
   fs : TFileStream;
begin
   // filestream erzeugen
   fs := TFileStream.Create(filename, fmCreate);
   try
      // Daten schreiben
      WritePatternString(fs, pattern, size);
   finally
      fs.Free;
   end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz