![]() |
AW: TMemoryStream mit Zufallszahlen füllen
Nur mal so OT am Rande:
Schon mal darüber nachgedacht, dass man mit so einer zufälligen Bytefolge auch zufällig einen Virus produziert, der vom Virenscanner dann gefressen wird? Oder es ist ein ganz neuer noch unbekannter Virus der dann das ganze Internet lahmlegt? Oder es wird ein Bild, was den wahren Mörder von JFK zeigt? (Vielleicht sogar irgendein Alien?) ... Also nicht wundern was dabei herauskommen kann :stupid: |
AW: TMemoryStream mit Zufallszahlen füllen
Delphi-Quellcode:
for i:=0 to (Beispielstream.Size-1 DIV 4) do Beispielstream.Write(Random(2147483647), 4);
Punkt vor Strichrechnung beachten!
Delphi-Quellcode:
for i:=0 to ((Beispielstream.Size-1) DIV 4) do Beispielstream.Write(Random(2147483647), 4);
Wie wäre es denn damit?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; Beispielstream : TMemoryStream; DateiGroesseInBytes : Integer; dw : DWord; begin DateiGroesseInBytes := 100; Beispielstream:=TMemoryStream.Create; Beispielstream.SetSize(DateiGroesseInBytes); Randomize; for i := 0 to (Beispielstream.Size - 1) Div SizeOf(dw) do begin dw := Random(MaxInt); Beispielstream.Write(dw, SizeOf(dw)); end; Beispielstream.SaveToFile('Datei'); Beispielstream.Free; end; |
AW: TMemoryStream mit Zufallszahlen füllen
So gibt es einen Zufallswert, der den gesamten Integer-Bereich abdeckt:
Delphi-Quellcode:
function GetTotalRandomInteger() : Integer;
begin Result := 0; for i := 1 to 4 do Result := ( ( Result shl 8 ) and $FFFFFF00 ) or Random( 256 ); end; |
AW: TMemoryStream mit Zufallszahlen füllen
Zitat:
Delphi-Quellcode:
Wenn Du nur Bytes schreiben willst... Dann schreib auch nur Bytes...
var i : Integer;
Beispielstream : TMemoryStream; ... begin Beispielstream:=TMemoryStream.Create; Beispielstream.SetSize(DateiGroesseInBytes); // Wofür? Beispielstream.LoadFromFile(Datei); // Daraus ergibt sich die Größe des Memstreams... Randomize; for i:=0 to Beispielstream.Size do Beispielstream.Write(Random(256), 1); // Warum erst die Datei laden um die Daten dann zu überschreiben... Beispielstream.SaveToFile(Datei); Beispielstream.Free; end; |
AW: TMemoryStream mit Zufallszahlen füllen
Ich schätze er will einen Datei-Shredder bauen....
Du brauchst diese durch-4-Teilerei nicht.
Delphi-Quellcode:
var i : Integer;
Beispielstream : TMemoryStream; begin Beispielstream:=TMemoryStream.Create; try Beispielstream.LoadFromFile(Datei); //Randomize; Sollte nur einmal im Programm aufgerufen werden! for i:=0 to Beispielstream.Size-1 do PByte(NativeUInt(Beispielstream.Memory)+i)^ := random(256); Beispielstream.SaveToFile(Datei); finally Beispielstream.Free; end; end; |
AW: TMemoryStream mit Zufallszahlen füllen
Na dann eher so...
Delphi-Quellcode:
var i : byte;
Beispielstream : TMemoryStream; begin Beispielstream:=TMemoryStream.Create; try Beispielstream.LoadFromFile(Datei); //Randomize; Sollte nur einmal im Programm aufgerufen werden! for i:=0 to 255 do begin Fillchar(Beispielstream.Memory^,I,Beispielstream.Size); Beispielstream.SaveToFile(Datei); end; finally Beispielstream.Free; end; end; |
AW: TMemoryStream mit Zufallszahlen füllen
Also wenn schon, dann so:
Delphi-Quellcode:
Wobei ich mir nicht sicher bin ob das nicht, dank Win Cache, zu dem Ergebnis von dem führt:
for i:=0 to 255 do
begin Fillchar(Beispielstream.Memory^,Beispielstream.Size, I); Beispielstream.SaveToFile(Datei); end;
Delphi-Quellcode:
i:=255;
Fillchar(Beispielstream.Memory^,Beispielstream.Size, I); Beispielstream.SaveToFile(Datei); |
AW: TMemoryStream mit Zufallszahlen füllen
Zitat:
Zitat:
Lange nicht mehr mit beschäftigt... |
AW: TMemoryStream mit Zufallszahlen füllen
Wenn man eine SSD sein eigen nennt, dann wird das kein Datei-Shredder, sondern ein SSD-Ager (wie lasse ich meine SSD besonders schnell altern) :stupid:
|
AW: TMemoryStream mit Zufallszahlen füllen
Zitat:
Da 4 Bytes = 1 DWORD, ist es egal, ob Du nun 4 zufällige Bytes oder 1 zufalliges DWORD erzeugst.. Nur bei dem vorhandenen RANDOM von Delphi, ist sogar die Lösung per 4x Byte zufälliger, wie einmal DWORD.. Ist halt kein 'richtiger' Zufallsgenerator, da Coputer sich damit schwer tun.. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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 by Thomas Breitkreuz