AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien überschreiben

Ein Thema von orion3000 · begonnen am 29. Aug 2003 · letzter Beitrag vom 29. Aug 2003
Antwort Antwort
orion3000

Registriert seit: 28. Aug 2003
Ort: Betzdorf
63 Beiträge
 
Delphi 4 Standard
 
#1

Dateien überschreiben

  Alt 29. Aug 2003, 09:22
Hallo,

kann mir irgendjemand sagen was hier falsch ist ....

Ich habe eine Procedure geschrieben diese soll eine Datei durch überschreiben löschen, dies Funktioniert auch ganz gut aber das Problem hier ist das die Funktion nicht bis zu Ende sondern darüber hinaus geht.
Das heißt wenn ich die Procedure starte dann wird zwar die Datei überschrieben aber wenn die Datei 1MB groß ist wird daraus eine Dateigröße die den gesammten freien Speicher der Festplatte belegt.

Die Procedure Stoppt einfach nicht wenn das Ende der Datei erreicht ist.

Delphi-Quellcode:
procedure WipeFile(FileName:string;Delfile:boolean);
var
  buffer: array [0..4095] of Byte;
  max, n: LongInt;
  i: Integer;
  fs: TFileStream;

  procedure RandomizeBuffer;
  var
    i: Integer;
  begin
    for i := Low(buffer) to High(buffer) do
      buffer[i] := Random(256);
  end;
begin
  fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  try
    for i := 1 to 3 do
    begin
      RandomizeBuffer;
      max := fs.Size;
      fs.Position := 0;
      while max <> 0 do
      begin
        if max <> SizeOf(buffer) then
          n := SizeOf(buffer)
        else
          n := max;
        fs.Write(Buffer, n);
        max := max - n;
      end;
      FlushFileBuffers(fs.Handle);


    end;
  finally
    fs.Free;
  end;


  if Delfile then
  Deletefile(pchar(FileName));
end;
Danke für Eure Hilfe
Orion3000
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Dateien überschreiben

  Alt 29. Aug 2003, 09:25
Hi und herzlich willkommen in der Delphi-PRAXiS!

Das Problem ist, dass einmal schreiben drüber gehen kann und du prüfst, ob max <> 0 ist. Versuch das mal mit max > 0. Dann sollte es gehen.

Chris
  Mit Zitat antworten Zitat
orion3000

Registriert seit: 28. Aug 2003
Ort: Betzdorf
63 Beiträge
 
Delphi 4 Standard
 
#3

Re: Dateien überschreiben

  Alt 29. Aug 2003, 10:09
hallo Chakotay1308,

danke erstmal für deine schnelle Hilfe und es funktioniert endlich.

Gruß
Orion300
  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 05:04 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