Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ersten Bytes einer File verändern (https://www.delphipraxis.net/107965-ersten-bytes-einer-file-veraendern.html)

delphinia 5. Feb 2008 14:03


Ersten Bytes einer File verändern
 
Ich habe eine ZIP archiv das fängt ja mit PK an
das würde ich gerne löschen und später wieder ersetzen!


Delphi-Quellcode:
  AssignFile(F, FileName);
  Reset(F, 1);
  Seek(F, 0); // 0 zum Anfang der Datei

  s := PChar(Header);
  BlockWrite(F, S, Length(Header));
  CloseFile(F);
sowas macht nur Müll mit der datei ... hat jemand eine Bessere Lösung?

divBy0 5. Feb 2008 14:11

Re: Ersten Bytes einer File verändern
 
Lade das ZIP in einen Stream, dann kannst du die Bytes verändern.

semo 5. Feb 2008 14:12

Re: Ersten Bytes einer File verändern
 
oder mit der ableitung tfilestream arbeiten.

mashutu 5. Feb 2008 14:35

Re: Ersten Bytes einer File verändern
 
So funktioniert das:

Delphi-Quellcode:
procedure Tpkfak_frm_Main.btnStartClick(Sender : TObject);
const
    casNewHead  : array[0..1] of char = 'HY';
var
    f  :  file;
begin
    system.assign(f,'template.zip');
    reset(f,1);
    blockwrite(f,casNewHead,2);
    system.close(f);
end;

Muetze1 5. Feb 2008 22:52

Re: Ersten Bytes einer File verändern
 
Warum zeigt ihm niemand den Fehler in seinem Code?

Sein Ansatz würde genauso funktionieren, wenn er dereferenziert:

Delphi-Quellcode:
AssignFile(F, FileName);
  Reset(F, 1);
  // Seek(F, 0); // unnötig, dort steht man nach dem Öffnen...

  s := PChar(Header);
  BlockWrite(F, s^, Length(Header));
  CloseFile(F);
Und ohne PChar Cast gehts auch:

Delphi-Quellcode:
AssignFile(F, FileName);
  Reset(F, 1);
  // Seek(F, 0); // unnötig, dort steht man nach dem Öffnen...

  BlockWrite(F, Header[1], Length(Header));
  CloseFile(F);

peschai 6. Feb 2008 06:14

Re: Ersten Bytes einer File verändern
 
Ergänzung: Eventuell auch noch das original datum Uhrzeit setzen, damit das "Schützen" der Zip-Dateie nicht auffällt ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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