![]() |
Fehlerhafte JPG Dateien Reparieren?
Hallo Liebe Delphi Entwickler,
Seit geraumer Zeit habe ich mehrere JPG Bilder die mal durch einen Virus beschädigt wurden. Seit längerem probiere ich den Datei-Header wieder zu Rekonstruieren. Jetzt meine Frage: Wie könnte ich die Dateien mit Delphi erstellten Anwendung Analysieren und den fehlerhaften Header neu in die Datei schreiben? Habe im Netz entsprechende Software gefunden aber möchte sowas gerne selbst Realisieren. Gruß Dirk |
Re: Fehlerhafte JPG Dateien Reparieren?
Hallo, guck mal hier, vielleicht hilft Dir das etwas weiter:
![]() |
Re: Fehlerhafte JPG Dateien Reparieren?
Idee ist ganz ok,aber hab prompt einen fehler gefunden :shock:
Count wurde nicht angegeben. Habe es mit Werten und Variablen probiert aber bringt immer einen Fehler in Delphi 7! :wall: |
Re: Fehlerhafte JPG Dateien Reparieren?
Nix verstehen.
Meinst Du Count bei meinem Quelltext oder bei Deinem, welche Fehler meinst Du? |
Re: Fehlerhafte JPG Dateien Reparieren?
Ich meine das der Quelltext so nicht übersetzt wird mit Delphi7 :(
Borland hat wohl etwas geändert,wobei die struktur ok ist :shock: Habe eine ähnliche Funktion zum Shreddern einer Datei die auch mit Blockwrite arbeitet und auch nur 3 Parameter benötigt,der Quelletext des Beispiels funktioniert leider nicht. Hier mal mein Beispiel was ich meine. Hier ein kleiner Teil meiner shredder funktion BlockWrite(f, FillBuffer[j], Buffer); Funktioniert ohne fehler!!!! Der Teil bricht mit der Compilermeldung variable required ab BlockWrite(F, PChar(Header), Length(Header)); Lustig oder? :lol: |
Re: Fehlerhafte JPG Dateien Reparieren?
Versuch halt den 4. (optionalen) Parameter anzugeben.
Delphi-Quellcode:
Oder direkt die API aufrufen (CreateFile & WriteFile)
BlockWrite(F, FillBuffer[j], BufferSize, NumWritten);
Was ist FillBuffer für ein Typ? |
Re: Fehlerhafte JPG Dateien Reparieren?
mit dem 4. operator klappt das auch nicht :(
Buffer hat bei mir den Wert 1024 als Konstante :idea: Die funktion hat aber nur als Beispile gedient,mich Interessiert wie ich nur den Datei-Header bearbeiten kann :zwinker: und nicht wie ich eine Datei mit verschiedenen Strings vor Rekunstruktion schütze denn das weis ich schon :thumb: |
Re: Fehlerhafte JPG Dateien Reparieren?
Delphi-Quellcode:
Der korrekten Header lädst du am Besten aus einer Datei:
procedure WriteHeader(const FileName: string; const Header: AnsiString);
var fs: TFileStream; begin fs := TFileStream.Create(FileName, fmOpenReadWrite); try fs.WriteBuffer(Header[1], Length(Header)); finally fs.Free; end; end;
Delphi-Quellcode:
function FileToString(const FileName: string): AnsiString;
var fs: TFileStream; Len: Integer; begin fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); try Len := fs.Size; SetLength(Result, Len); if Len > 0 then fs.ReadBuffer(Result[1], Len); finally fs.Free; end; end;
Delphi-Quellcode:
var
header : string; begin header := FileToString('header.dat'); WriteHeader('kaputt.jpeg', header); |
Re: Fehlerhafte JPG Dateien Reparieren?
Coole Sache,funktioniert ohne Fehler.
Danke. :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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-2025 by Thomas Breitkreuz