AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Fehlerhafte JPG Dateien Reparieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlerhafte JPG Dateien Reparieren?

Ein Thema von Dirkmswt · begonnen am 27. Sep 2006 · letzter Beitrag vom 1. Okt 2006
Antwort Antwort
Dirkmswt

Registriert seit: 27. Sep 2006
Ort: Heppenheim
64 Beiträge
 
#1

Fehlerhafte JPG Dateien Reparieren?

  Alt 27. Sep 2006, 08:59
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
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 27. Sep 2006, 18:27
Hallo, guck mal hier, vielleicht hilft Dir das etwas weiter:
Die ersten paar bytes einer Datei überschreiben
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Dirkmswt

Registriert seit: 27. Sep 2006
Ort: Heppenheim
64 Beiträge
 
#3

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 28. Sep 2006, 09:04
Idee ist ganz ok,aber hab prompt einen fehler gefunden
Count wurde nicht angegeben.
Habe es mit Werten und Variablen probiert aber bringt immer einen Fehler in Delphi 7!
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#4

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 28. Sep 2006, 19:25
Nix verstehen.

Meinst Du Count bei meinem Quelltext oder bei Deinem, welche Fehler meinst Du?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Dirkmswt

Registriert seit: 27. Sep 2006
Ort: Heppenheim
64 Beiträge
 
#5

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 28. Sep 2006, 21:37
Ich meine das der Quelltext so nicht übersetzt wird mit Delphi7
Borland hat wohl etwas geändert,wobei die struktur ok ist
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?
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#6

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 28. Sep 2006, 21:57
Versuch halt den 4. (optionalen) Parameter anzugeben.

BlockWrite(F, FillBuffer[j], BufferSize, NumWritten); Oder direkt die API aufrufen (CreateFile & WriteFile)

Was ist FillBuffer für ein Typ?
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Dirkmswt

Registriert seit: 27. Sep 2006
Ort: Heppenheim
64 Beiträge
 
#7

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 29. Sep 2006, 10:46
mit dem 4. operator klappt das auch nicht
Buffer hat bei mir den Wert 1024 als Konstante
Die funktion hat aber nur als Beispile gedient,mich Interessiert wie ich nur den Datei-Header bearbeiten kann und nicht wie ich eine Datei mit verschiedenen Strings vor Rekunstruktion schütze denn das weis ich schon
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 29. Sep 2006, 11:04
Delphi-Quellcode:
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;
Der korrekten Header lädst du am Besten aus einer Datei:
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);
Andreas
  Mit Zitat antworten Zitat
Dirkmswt

Registriert seit: 27. Sep 2006
Ort: Heppenheim
64 Beiträge
 
#9

Re: Fehlerhafte JPG Dateien Reparieren?

  Alt 1. Okt 2006, 10:15
Coole Sache,funktioniert ohne Fehler.
Danke.
  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 20:59 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