Arsip: Aplikasi Shredder

 
user image
more 13 years ago

ivan

Mas², Saya lagi iseng bikin file shredder, yg cara kerjanya dengan mengacak isi file terlebih dahulu kemudian di delete. Pertanyaannya: Saat proses stream acak isi, ternyata ukuran file malah membesar dahulu (File setelah di acak malah lebih besar dari file asli). Padahal saya melihat program shredder lain itu justru mengecilkan sedikit demi sedikit hingga menjadi 0 KB baru didelete ini code untuk acaknya:
      
    var fs: TFileStream;
         a, Buffer: Char;
                       i: LongInt;
     for i:= 0 to fs.Size-1 do
        begin
         fs.Read(Buffer, sizeof(Buffer));
         a:= Buffer;
         a:= Char(ord(a) shr ord(a) + $698098d8);
          fs.Write(a, sizeof(a));
        end;
Atau ada cara yg benar seperti apa?
user image
more 13 years ago

kodok_bancret

Seharusnya sebelum fs.Write panggil fs.Seek dulu untuk mundur 1 byte (posisi semula). Aku dulu pernah bikin file shredder, menurutku isi fileny tidak perlu di acak, tapi di replace saja dengan karakter lain misal spaci. :)
user image
more 13 years ago

ivan

Maksudnya seperti ini:
    var fs: TFileStream;
         a, Buffer: Char;
                       i: LongInt;
     for i:= 0 to fs.Size-1 do
        begin
         fs.Read(Buffer, sizeof(Buffer));
         a:= Buffer;
         a:= Char(ord(a) shr ord(a) + $698098d8);
         fs.Seek(1, soFromCurrent);  //  <-------------------------- seperti ini
          fs.Write(a, sizeof(a));
        end; 
Koq hasilnya masih besar juga yach
user image
more 13 years ago

kodok_bancret

coba ganti dengan: fs.Seek(-1, soFromCurrent);
user image
more 13 years ago

ivan

Seeeppp makasih. Output file size tetap. Makasih atas pelajarannya
more ...
  • Pages:
  • 1
Share to
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com