AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Dateien / Laufwerke Delphi Stream/File mit Musterdaten beschreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Stream/File mit Musterdaten beschreiben

Ein Thema von shmia · begonnen am 28. Jun 2005
Antwort Antwort
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#1

Stream/File mit Musterdaten beschreiben

  Alt 28. Jun 2005, 18:55
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;
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz