berens Posted May 22, 2006 Share Posted May 22, 2006 (edited) Sorry dass ich für das Thema IRecordManager.DeleteEntry jetzt schon das zweite Thema aufmachen, aber das hier ist doch Recht wichtig: DVBViewer.RecordManager.DeleteEntry(DVBViewer.RecordManager.Items[i].recID); Kann unter Umständen zu mehrfachem DATENVERLUST führen, auch in Ordnern, die nichts mit DVBViewer zu tun haben! (Nice to have a Backup!!) Teststellung (hoffentlich nachvollziehbar): PC mit (mittlerweile DVB-C ^^ Karte), DVBViewer Pro Aufnahmeverzeichniss für Video: C:\Dokumente und ~~\~~~~\Eigene Dateien\Record Mein Programm startet Aufnahme und erstellt die Dateien in dem o.g. Ordner. .mpg und .txt jeweils vorhanden. Nun geht mein Programm hin, und löscht (nach Beendigung der Aufnahme oder bevor die überhaupt angefangen hat - es geht hier um ein Beispiel) die ganzen Aufnahmen mit dem o.g. Befehl weg. Siehe http://www.DVBViewer.com/forum/index.php?s...t=0entry95246 Nun tritt das dort erwähnte Problem auf, dass die Dateien nicht von der Platte, und auch nicht aus der DVBViewer Datenbank gelöscht werden. Also: Dateien per Hand löschen (die komplette Funktion) procedure TfrmMain.Button4Click(Sender: TObject); var i: Integer; Folder, Filename, Extension: widestring; begin for i := 0 to DVBViewer.RecordManager.Count-1 do begin Filename := DVBViewer.RecordManager.Items[i].Filename; DVBViewer.RecordManager.DeleteEntry(DVBViewer.RecordManager.Items[i].recID); Folder := ExtractFileDir(Filename); if copy(Folder, length(folder), 1) <> '\' then folder := Folder + '\'; Extension := ExtractFileExt(DVBViewer.RecordManager.Items[i].Filename); if (Folder <> Filename) and FileExists(Filename) then begin DeleteFile(Filename); end; Filename := Copy(Filename, 1, length(Filename)-length(Extension)) + '.txt'; if (Folder <> Filename) and FileExists(Filename) then begin if not DeleteFile(Filename) then begin showmessage(Filename + ' failed'); end; end; end; end; Nach dessen 1x Durchlauf sieht es nun wie folgt aus: Alle Dateien weg (von Deletefile), die Einträge in der Datenbank (Recordmanager) immernoch vorhanden. Programmende. Nichtsahnend startet man nun (mein) Programm erneut, und ruft die selbe Routine auf: Erster Schleifendurchlauf, alles OK. Nach einer getätigten Aufnahme (ca. 3 Sekunden, wie auch immer). Ruft man die Routine erneut auf. Vor/Bei DVBViewer.RecordManager.DeleteEntry(DVBViewer.RecordManager.Items.recID); einen Breakpoint setzen und euren Eigenen Dateien nochmal zuwinken (von Windows Dateien zählen lassen etc.) und dann diese Zeile aktivieren (F8). Nun nach euren Dateien sehen und feststellen: -Der komplette Ordner "Record" ist verschwunden -Meine Musik, Meine Videos etc. sind weg -Aus den Unterordnern fehlen alle .pas .dpr .bdsproj und viele andere Dateien Des ist wohl meines Wissens nach ein echt gravierendes Problem. Wer von den Programmierern möchte, darf mich gerne anskypen, anrufen, anmailen, wasauchimmer und ich kann das ganze mit http://www.pcvisit.de live vorführen. Respekt für Eure Arbeit bisher, aber mit dem Wissen über dieses Problem kann ich leider DVBViewer nicht beim Kunden installieren... Hoffe auf baldige Antwort, Mfg Mathias Edit: Support.zip angehängt support.zip Edited May 22, 2006 by berens Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.