AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Beschädigte Datei retten ?

Ein Thema von Cicaro · begonnen am 17. Jul 2011 · letzter Beitrag vom 29. Jul 2011
Antwort Antwort
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#1

Beschädigte Datei retten ?

  Alt 17. Jul 2011, 12:36
Hallo.

Weiß jemand, wie man am besten 1 Datei kopieren kann, bei dem Windows einen E/A Gerätefehler meldet ?
Es ist ein Video File *.avi und ich habs schon mit VirtualDub angesehen. Es sind vorne, hinten, in der Mitte Frames, die noch in Takt sind (möglicherweise nur ein paar Cluster unlesbar). Ich möchte die Datei kopieren und die fehlerhaften Cluster mit Nullen ausfüllt haben. "Dust Signs File Copier" läuft gerade und ist steckengeblieben. Ich fürchte es wird scheitern. Kennt noch wer was Funktionierendes ?

/edit/ Es ist eine 4 GB Datei (mit Fraps erstelt) und liegt auf einer externen Festplatte.

MfG

Geändert von Cicaro (17. Jul 2011 um 13:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#2

AW: Beschädigte Datei retten ?

  Alt 17. Jul 2011, 12:38
Irgendwo hab ich eventuell noch ein altes fehlerüberspringendes Kopierprogramm rumliegen (mal sehn ob ich's finde).

Worauf befindet sich denn diese Datei? (CD/DVD oder HDD ... bei letzerem Checkdisk drüberlaufen lassen)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Beschädigte Datei retten ?

  Alt 17. Jul 2011, 13:36
Moin Cicaro,

schau mal im Eventviewer, ob dort eventuell Plattenfehler gemeldet werden.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#4

AW: Beschädigte Datei retten ?

  Alt 17. Jul 2011, 14:31
Kann es vielleicht sein, dass die Datei von einem anderen Rechner als deinem auf die Platte kopiert wurde? ODer dass die Platte FAT(32) formatiert ist?
FAT kann mit Dateien>4GB nicht umgehen, da braucht es schon NTFS.
Delphi programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#5

AW: Beschädigte Datei retten ?

  Alt 17. Jul 2011, 15:33
Nee, find es nicht mehr, aber hier mal eine ganz einfache Konstruktion:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, o: TStream;
  p, l: Int64;
  b: array[0..511] of Byte;
begin
  o := nil;
  i := TFileStream.Create(Edit1.Text, fmOpenRead or fmShareDenyNone);
  try
    o := TFileStream.Create(Edit2.Text, fmCreate);
    l := i.Size;
    p := 0;
    while p < l do
      try
        i.Position := p;
        o.Position := p;
        o.Write(b, i.Read(b, SizeOf(b)));
        Inc(p, SizeOf(b));
      except
        Inc(p, SizeOf(b));
      end;
  finally
    o.Free;
    i.Free;
  end;
end;
Für CD/DVD kann/sollte man aus dem 511 ein 2047 machen (es geht aber auch so, nur eben bis zu 4 Mal langsamer, bei den fehlerhaften Sektoren, aber immernoch schneller, als der Unstoppable ).

Alternativ gibt es auch noch den Bei Google suchenUnstoppable Copier, aber ganz im Ernst, das Programm funktioniert zwar, ist allerdings total schrottig und scheinbar ohne das geringste Wissen über Dateizugriffe programmiert wurden und demnach extrem lahm.
(Byteweiser Zugriff, wo die Laufwerke doch nur Sektorweise arbeiten ... Seit ich weiß, wie das im Inneren arbeitet, kann ich das Teil eigentlich nicht mehr wirklich empfehlen)



Kannst'e ja mit 2 TEdits und einem TButton zum Laufen bekommen (eventuell auch noch je ein TButton mit TOpenDialog, bzw. TSaveDialog an die Edits dran)
oder direkt die Dateinamen/-pfade angeben.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (17. Jul 2011 um 15:45 Uhr)
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#6

AW: Beschädigte Datei retten ?

  Alt 17. Jul 2011, 15:50
Nee, find es nicht mehr, aber hier mal eine ganz einfache Konstruktion:
...
Hab mir auch schon überlegt, mir in Delphi nen "Kopierer" zu programmieren. Aber mit VirtualDub gibgs schneller ^^ (hm mal testen, ob der Code funktioniert. Wenn Delphi "meinen" Fehler auch als Exception abfängt, sollte es eigentlich)
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#7

AW: Beschädigte Datei retten ?

  Alt 17. Jul 2011, 15:44
Jain, beide Systeme sind NTFS. Ich wollte die Datei mithile einer externen Festplatte von einem PC auf nen anderen kopieren und es ist wohl auf schlechten Sektoren gelandet. Ich hab jetzt meine Datei mit VirtualDub in 2 Teile aufgeteilt und habe 35 unlesbare Frames verloren. Ich kanns verschmerzen. Aber das Problem ist hier nicht wirklich gelöst. Wie rettet man Nicht-VirtualDub-Kompatible-Dateien ?

Ich hab "Dust Sign File Copier" und "unstopcp" ausprobiert. Beide blieben bei der Stelle mit fehlerhaften Clustern hängen (hab sie abgebrochen, vielleicht funktionieren sie ja doch noch, aber es dauerte mir zu lange).
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Beschädigte Datei retten ?

  Alt 21. Jul 2011, 08:49
Nur mal so: Wieso bimmeln hier keine Alarmglocken?
Ich meine "große AVI-Datei"? Kopierproblem?

Kann man nicht mal klären, was in der AVI-Datei so drin ist?
Darf der Threadersteller das überhaupt *kopieren*? Gibts da nicht sowas wie Copyright und so?

Sind die Fragen geklärt oder ich zu paranoid?
Siehe Ausgangspost:

/edit/ Es ist eine 4 GB Datei (mit Fraps erstelt) und liegt auf einer externen Festplatte.
(Link von mir eingefügt)
Schonmal damit gearbeitet? Da haste ruckzuck eine Videodatei von beachtlicher Größe erstellt.
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:35 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